refactor(admin-reports, i18n): remove rebate commission report and enhance localization
Removed the `getAdminReportRebateCommission` function and its references from the admin reports API and localization files. Updated CSS for improved money display handling in admin components. Enhanced localization support by adding new finance and support workspace entries in English, Nepali, and Chinese, improving user experience across the application.
This commit is contained in:
44
src/hooks/use-admin-permission.ts
Normal file
44
src/hooks/use-admin-permission.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import {
|
||||
adminHasAnyPermission,
|
||||
adminHasAnyPermissionCode,
|
||||
adminOperationalPermissionCodes,
|
||||
} from "@/lib/admin-permissions";
|
||||
import { useAdminProfile } from "@/stores/admin-session";
|
||||
import type { AdminAccountKind, AdminProfile } from "@/types/api/admin-auth";
|
||||
|
||||
export function resolveAdminAccountKind(profile: AdminProfile | null | undefined): AdminAccountKind | null {
|
||||
if (!profile) {
|
||||
return null;
|
||||
}
|
||||
if (profile.account_kind) {
|
||||
return profile.account_kind === "site_operator" ? "site_admin" : profile.account_kind;
|
||||
}
|
||||
if (profile.is_super_admin) {
|
||||
return "super_admin";
|
||||
}
|
||||
if (profile.agent != null) {
|
||||
return "agent_operator";
|
||||
}
|
||||
if (profile.site != null) {
|
||||
return "site_admin";
|
||||
}
|
||||
return "platform_account";
|
||||
}
|
||||
|
||||
/** 统一权限与会话身份读取:legacy `prd.*` 与 action code 并存,新代码优先用 `hasAnyCode`。 */
|
||||
export function useAdminPermission() {
|
||||
const profile = useAdminProfile();
|
||||
const legacyPermissions = profile?.permissions ?? [];
|
||||
const operationalPermissions = adminOperationalPermissionCodes(profile);
|
||||
|
||||
return {
|
||||
profile,
|
||||
legacyPermissions,
|
||||
operationalPermissions,
|
||||
accountKind: resolveAdminAccountKind(profile),
|
||||
isSuperAdmin: profile?.is_super_admin === true,
|
||||
/** @deprecated 逐步改用 {@link hasAnyCode} */
|
||||
hasAnyLegacy: (required: readonly string[]) => adminHasAnyPermission(legacyPermissions, required),
|
||||
hasAnyCode: (required: readonly string[]) => adminHasAnyPermissionCode(operationalPermissions, required),
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user