fix(worker-platform): restrict withdrawal blacklist actions to admin role only

This commit is contained in:
yml2213
2026-09-13 12:38:19 +08:00
parent 061a5d897f
commit abccecf8ed
2 changed files with 12 additions and 8 deletions
@@ -123,7 +123,7 @@ router.post(
router.post( router.post(
'/worker-platform/workers/:workerId/withdrawal-blacklist', '/worker-platform/workers/:workerId/withdrawal-blacklist',
requireAdminRoles(['admin', 'operator']), requireAdminRoles(['admin']),
createJsonHandler( createJsonHandler(
(req) => (req) =>
updateAdminWorkerWithdrawalBlacklist(String(req.params.workerId || ''), req.body || {}), updateAdminWorkerWithdrawalBlacklist(String(req.params.workerId || ''), req.body || {}),
@@ -39,6 +39,7 @@ import type {
WorkerUserStatistics, WorkerUserStatistics,
} from '@/types/worker-platform' } from '@/types/worker-platform'
import { ADMIN_DEFAULT_PAGE_SIZE, buildAdminTablePagination } from '@/utils/admin-pagination' import { ADMIN_DEFAULT_PAGE_SIZE, buildAdminTablePagination } from '@/utils/admin-pagination'
import { getAdminRole } from '@/utils/admin-auth'
import WorkerDetailDrawer from './WorkerDetailDrawer' import WorkerDetailDrawer from './WorkerDetailDrawer'
import { formatMoney, formatWorkerStatus } from './shared' import { formatMoney, formatWorkerStatus } from './shared'
@@ -115,6 +116,7 @@ function WorkerStatisticsBar({ statistics }: { statistics?: WorkerUserStatistics
} }
export default function WorkersPanel() { export default function WorkersPanel() {
const isAdmin = getAdminRole() === 'admin'
const { message, modal } = App.useApp() const { message, modal } = App.useApp()
const queryClient = useQueryClient() const queryClient = useQueryClient()
const [searchParams, setSearchParams] = useSearchParams() const [searchParams, setSearchParams] = useSearchParams()
@@ -612,13 +614,15 @@ export default function WorkersPanel() {
<Button onClick={() => setCreditWorker(row)}>充值</Button> <Button onClick={() => setCreditWorker(row)}>充值</Button>
<Button onClick={() => setResetPasswordWorker(row)}>重置密码</Button> <Button onClick={() => setResetPasswordWorker(row)}>重置密码</Button>
<Button onClick={() => void openWithdrawalAccountModal(row)}>提现信息</Button> <Button onClick={() => void openWithdrawalAccountModal(row)}>提现信息</Button>
{row.isWithdrawalBlacklisted ? ( {isAdmin ? (
<Button onClick={() => handleRemoveFromBlacklist(row)}>移出提现黑名单</Button> row.isWithdrawalBlacklisted ? (
) : ( <Button onClick={() => handleRemoveFromBlacklist(row)}>移出提现黑名单</Button>
<Button danger onClick={() => handleAddToBlacklist(row)}> ) : (
加入提现黑名单 <Button danger onClick={() => handleAddToBlacklist(row)}>
</Button> 加入提现黑名单
)} </Button>
)
) : null}
</Space> </Space>
), ),
}, },