Skip to content

Commit 93caf27

Browse files
committed
fix: modernize global server ban/unban
1 parent a308d49 commit 93caf27

30 files changed

Lines changed: 563 additions & 998 deletions

.woodpecker/build-linux.yaml

Lines changed: 0 additions & 34 deletions
This file was deleted.

.woodpecker/test-releasing.yaml

Lines changed: 0 additions & 13 deletions
This file was deleted.

ts/components/conversation/message/message-content/MessageContextMenu.tsx

Lines changed: 44 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,14 @@ import { WithMessageId } from '../../../../session/types/with';
4747
import { DeleteItem } from '../../../menu/items/DeleteMessage/DeleteMessageMenuItem';
4848
import { RetryItem } from '../../../menu/items/RetrySend/RetrySendMenuItem';
4949
import { useBanUserCb } from '../../../menuAndSettingsHooks/useBanUser';
50-
import { useUnbanUserCb } from '../../../menuAndSettingsHooks/useUnbanUser';
5150
import { tr } from '../../../../localization/localeTools';
5251
import { sectionActions } from '../../../../state/ducks/section';
5352
import { useRemoveSenderFromCommunityAdmin } from '../../../menuAndSettingsHooks/useRemoveSenderFromCommunityAdmin';
5453
import { useAddSenderAsCommunityAdmin } from '../../../menuAndSettingsHooks/useAddSenderAsCommunityAdmin';
55-
import { useServerBanUserCb } from '../../../menuAndSettingsHooks/useServerBanUser';
56-
import { useServerUnbanUserCb } from '../../../menuAndSettingsHooks/useServerUnbanUser';
54+
import {
55+
useAddUserPermissions,
56+
useClearUserPermissions,
57+
} from '../../../menuAndSettingsHooks/useAddUserPermissions';
5758

5859
export type MessageContextMenuSelectorProps = Pick<
5960
MessageRenderingProps,
@@ -98,10 +99,27 @@ const CommunityAdminActionItems = ({ messageId }: WithMessageId) => {
9899
const sender = useMessageSender(messageId);
99100
const isSenderAdmin = useMessageSenderIsAdmin(messageId);
100101

101-
const banUserCb = useBanUserCb(convoId, sender);
102-
const unbanUserCb = useUnbanUserCb(convoId, sender);
103-
const serverBanUser = useServerBanUserCb(convoId, sender);
104-
const serverUnbanUser = useServerUnbanUserCb(convoId, sender);
102+
const sharedBanUnbanProps = {
103+
conversationId: convoId,
104+
pubkey: sender,
105+
};
106+
107+
const banUserCb = useBanUserCb({
108+
banType: 'ban',
109+
...sharedBanUnbanProps,
110+
});
111+
const unbanUserCb = useBanUserCb({
112+
banType: 'unban',
113+
...sharedBanUnbanProps,
114+
});
115+
const serverBanUser = useBanUserCb({
116+
banType: 'server-ban',
117+
...sharedBanUnbanProps,
118+
});
119+
const serverUnbanUser = useBanUserCb({
120+
banType: 'server-unban',
121+
...sharedBanUnbanProps,
122+
});
105123

106124
const removeSenderFromCommunityAdminCb = useRemoveSenderFromCommunityAdmin({
107125
conversationId: convoId,
@@ -113,22 +131,16 @@ const CommunityAdminActionItems = ({ messageId }: WithMessageId) => {
113131
senderId: sender,
114132
});
115133

116-
const addUploadPermission = () => {
117-
void MessageInteraction.addUserPermissions(sender, convoId, ['upload']);
118-
};
119-
120-
const clearUploadPermission = () => {
121-
void MessageInteraction.clearUserPermissions(sender, convoId, ['upload']);
122-
};
134+
const addUploadPermissionCb = useAddUserPermissions(sender, convoId, ['upload']);
135+
const clearUploadPermissionCb = useClearUserPermissions(sender, convoId, ['upload']);
123136

124-
// TODO: This codebase is a pain.
125-
// Fixed to `true`.
137+
// Fixed to `true` as not currently exposed by the backend/tracked in session-desktop
126138
const isRoomUploadRestricted = true;
127139
const canSenderUpload = true;
128140
const canSenderNotUpload = true;
129141

130142
// Note: add/removeSenderFromCommunityAdminCb can be null if we are a moderator only, see below
131-
if (!convoId || !sender || !banUserCb || !unbanUserCb || !serverBanUser || !serverUnbanUser) {
143+
if (!convoId || !sender || !banUserCb || !unbanUserCb) {
132144
return null;
133145
}
134146

@@ -148,24 +160,25 @@ const CommunityAdminActionItems = ({ messageId }: WithMessageId) => {
148160
{tr('adminPromoteToAdmin')}
149161
</ItemWithDataTestId>
150162
) : null}
151-
<ItemWithDataTestId onClick={serverBanUser}>
152-
{tr('serverBanUser').toString()}
153-
</ItemWithDataTestId>
154-
<ItemWithDataTestId onClick={serverUnbanUser}>
155-
{tr('serverUnbanUser').toString()}
156-
</ItemWithDataTestId>
163+
164+
{serverBanUser ? (
165+
<ItemWithDataTestId onClick={serverBanUser}>{tr('serverBanUser')}</ItemWithDataTestId>
166+
) : null}
167+
{serverUnbanUser ? (
168+
<ItemWithDataTestId onClick={serverUnbanUser}>{tr('serverUnbanUser')}</ItemWithDataTestId>
169+
) : null}
157170
{!isSenderAdmin && isRoomUploadRestricted && (
158171
<>
159-
{canSenderUpload && (
160-
<ItemWithDataTestId onClick={addUploadPermission}>
161-
{tr('addUploadPermission').toString()}
172+
{canSenderUpload && addUploadPermissionCb ? (
173+
<ItemWithDataTestId onClick={addUploadPermissionCb}>
174+
{tr('addUploadPermission')}
162175
</ItemWithDataTestId>
163-
)}
164-
{canSenderNotUpload && (
165-
<ItemWithDataTestId onClick={clearUploadPermission}>
166-
{tr('clearUploadPermission').toString()}
176+
) : null}
177+
{canSenderNotUpload && clearUploadPermissionCb ? (
178+
<ItemWithDataTestId onClick={clearUploadPermissionCb}>
179+
{tr('clearUploadPermission')}
167180
</ItemWithDataTestId>
168-
)}
181+
) : null}
169182
</>
170183
)}
171184
</>

0 commit comments

Comments
 (0)