mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-11-05 04:12:25 +00:00
feat: isolate view telemetry and restrict session actor publishing
- Add `isSessionActor` helper to `js/nostr/sessionActor.js` to identify ephemeral keys. - Update `js/nostr/viewEvents.js` to namespace view deduplication caches by `actorPubkey` to prevent data leakage between sessions. - Block comment publishing for session actors in `js/nostr/commentEvents.js`. - Block watch history list publishing for session actors in `js/nostr/client.js`. - Block user block list publishing for session actors in `js/userBlocks.js`. - Block hashtag preference publishing for session actors in `js/services/hashtagPreferencesService.js`. - Add inline documentation clarifying variable sources.
This commit is contained in:
1 parent
37e2e6dfc6
commit
b49a294dc0
6 files changed
+100
-13
No files matched your search
@@ -4,6 +4,7 @@ import {
|
||||
requestDefaultExtensionPermissions,
|
||||
} from "./nostrClientFacade.js";
|
||||
import { getActiveSigner } from "./nostr/index.js";
|
||||
import { isSessionActor } from "./nostr/sessionActor.js";
|
||||
import { normalizeNostrPubkey } from "./nostr/nip46Client.js";
|
||||
import { buildBlockListEvent, BLOCK_LIST_IDENTIFIER, NOTE_TYPES } from "./nostrEventSchemas.js";
|
||||
import { CACHE_POLICIES, STORAGE_TIERS } from "./nostr/cachePolicies.js";
|
||||
@@ -1521,6 +1522,15 @@ class UserBlockListManager {
|
||||
plaintext = "",
|
||||
onStatus,
|
||||
} = {}) {
|
||||
// nostrClient imported from nostrClientFacade
|
||||
if (isSessionActor(nostrClient)) {
|
||||
const error = new Error(
|
||||
"Publishing mute lists is not allowed for session actors."
|
||||
);
|
||||
error.code = "session-actor-publish-blocked";
|
||||
throw error;
|
||||
}
|
||||
|
||||
const owner = normalizeHex(ownerPubkey);
|
||||
if (!owner || !signer || typeof signer.signEvent !== "function") {
|
||||
return null;
|
||||
@@ -1622,6 +1632,14 @@ class UserBlockListManager {
|
||||
}
|
||||
|
||||
async publishBlockList(userPubkey, options = {}) {
|
||||
if (isSessionActor(nostrClient)) {
|
||||
const error = new Error(
|
||||
"Publishing block lists is not allowed for session actors."
|
||||
);
|
||||
error.code = "session-actor-publish-blocked";
|
||||
throw error;
|
||||
}
|
||||
|
||||
const onStatus =
|
||||
options && typeof options.onStatus === "function" ? options.onStatus : null;
|
||||
|
||||
|
||||
Reference in new issue
Block a user