forked from coracle/flotilla
Address RBAC review feedback
This commit is contained in:
+12
-16
@@ -152,11 +152,14 @@ import {checkRelayHasLivekit} from "$lib/livekit"
|
||||
import {readFeed} from "@lib/feeds"
|
||||
import {
|
||||
parseRoomMembers,
|
||||
deriveRoomMembers as deriveRoomMembersByRole,
|
||||
deriveRoomAdmins as deriveRoomAdminsByRole,
|
||||
deriveUserIsSpaceAdmin as deriveUserIsSpaceAdminByRole,
|
||||
deriveUserIsRoomAdmin as deriveUserIsRoomAdminByRole,
|
||||
deriveRoomMembers,
|
||||
deriveUserIsSpaceAdmin,
|
||||
deriveUserIsRoomAdmin,
|
||||
deriveUserSpacePermissions,
|
||||
ROOM_PERMISSION_ADD_MEMBER,
|
||||
ROOM_PERMISSION_REMOVE_MEMBER,
|
||||
ROOM_PERMISSION_DELETE_EVENT,
|
||||
ROOM_PERMISSION_BAN_USER,
|
||||
} from "@app/core/roles"
|
||||
import type {RoomMember} from "@app/core/roles"
|
||||
|
||||
@@ -820,8 +823,6 @@ export const deriveSpaceMembers = (url: string) =>
|
||||
uniq(getTagValues("member", event?.tags ?? [])),
|
||||
)
|
||||
|
||||
export const deriveRoomMembers = deriveRoomMembersByRole
|
||||
|
||||
export type BannedPubkeyItem = {
|
||||
pubkey: string
|
||||
reason: string
|
||||
@@ -840,8 +841,6 @@ export const deriveSpaceBannedPubkeyItems = (url: string) => {
|
||||
return store
|
||||
}
|
||||
|
||||
export const deriveRoomAdmins = deriveRoomAdminsByRole
|
||||
|
||||
const getRoomMembers = (_url: string, h: string, events: TrustedEvent[]) => {
|
||||
const members = new Set<string>()
|
||||
|
||||
@@ -901,11 +900,12 @@ export const deriveSpaceActionItems = (url: string) =>
|
||||
getTagValue(e.kind === ROOM_MEMBERS ? "d" : "h", e.tags)
|
||||
const reports = $events.filter(e => e.kind === REPORT)
|
||||
const pendingJoins: TrustedEvent[] = []
|
||||
const canReviewReports = $permissions.has(9005) || $permissions.size === 0
|
||||
const canReviewReports =
|
||||
$permissions.has(ROOM_PERMISSION_DELETE_EVENT) || $permissions.size === 0
|
||||
const canReviewJoins =
|
||||
$permissions.has(9000) ||
|
||||
$permissions.has(9001) ||
|
||||
$permissions.has(9009) ||
|
||||
$permissions.has(ROOM_PERMISSION_ADD_MEMBER) ||
|
||||
$permissions.has(ROOM_PERMISSION_REMOVE_MEMBER) ||
|
||||
$permissions.has(ROOM_PERMISSION_BAN_USER) ||
|
||||
$permissions.size === 0
|
||||
|
||||
// Room-level join requests — most recent per pubkey+h
|
||||
@@ -978,8 +978,6 @@ export enum MembershipStatus {
|
||||
Granted,
|
||||
}
|
||||
|
||||
export const deriveUserIsSpaceAdmin = deriveUserIsSpaceAdminByRole
|
||||
|
||||
export const deriveUserSpaceMembershipStatus = (url: string) => {
|
||||
// Fetch member list and user add/remove events directly in this derivation.
|
||||
const memberListFilters: Filter[] = [{kinds: [RELAY_MEMBERS]}]
|
||||
@@ -1042,8 +1040,6 @@ export const deriveUserSpaceMembershipStatus = (url: string) => {
|
||||
)
|
||||
}
|
||||
|
||||
export const deriveUserIsRoomAdmin = deriveUserIsRoomAdminByRole
|
||||
|
||||
export const deriveUserRoomMembershipStatus = (url: string, h: string) => {
|
||||
// Fetch the room member list and the current user's add/remove events.
|
||||
const userEventFilters: Filter[] = [{kinds: [ROOM_ADD_MEMBER, ROOM_REMOVE_MEMBER], "#h": [h]}]
|
||||
|
||||
Reference in New Issue
Block a user