feat: granular hamkar/khanegi permissions (manage / settings / appearance)
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+44
-2
@@ -10,8 +10,14 @@ export const PERMISSIONS = [
|
||||
'support:write',
|
||||
'hamkar:read',
|
||||
'hamkar:write',
|
||||
'hamkar.ui:read',
|
||||
'hamkar.ui:write',
|
||||
'khanegi:read',
|
||||
'khanegi:write',
|
||||
'khanegi.settings:read',
|
||||
'khanegi.settings:write',
|
||||
'khanegi.ui:read',
|
||||
'khanegi.ui:write',
|
||||
'others:read',
|
||||
'others:write',
|
||||
'admins:read',
|
||||
@@ -36,8 +42,16 @@ export const PERMISSION_MODULES: PermissionModule[] = [
|
||||
{ key: 'servers', label: 'سرور', read: 'servers:read', write: 'servers:write' },
|
||||
{ key: 'plugins', label: 'افزونه', read: 'plugins:read', write: 'plugins:write' },
|
||||
{ key: 'support', label: 'پشتیبانی', read: 'support:read', write: 'support:write' },
|
||||
{ key: 'hamkar', label: 'همکار', read: 'hamkar:read', write: 'hamkar:write' },
|
||||
{ key: 'khanegi', label: 'خانگی', read: 'khanegi:read', write: 'khanegi:write' },
|
||||
{ key: 'hamkar', label: 'همکار — مدیریت', read: 'hamkar:read', write: 'hamkar:write' },
|
||||
{ key: 'hamkar.ui', label: 'همکار — ظاهر', read: 'hamkar.ui:read', write: 'hamkar.ui:write' },
|
||||
{ key: 'khanegi', label: 'خانگی — مدیریت', read: 'khanegi:read', write: 'khanegi:write' },
|
||||
{
|
||||
key: 'khanegi.settings',
|
||||
label: 'خانگی — تنظیمات',
|
||||
read: 'khanegi.settings:read',
|
||||
write: 'khanegi.settings:write',
|
||||
},
|
||||
{ key: 'khanegi.ui', label: 'خانگی — ظاهر', read: 'khanegi.ui:read', write: 'khanegi.ui:write' },
|
||||
{ key: 'others', label: 'سایتهای دیگر', read: 'others:read', write: 'others:write' },
|
||||
{ key: 'admins', label: 'مدیران', read: 'admins:read', write: 'admins:write' },
|
||||
{ key: 'audit', label: 'لاگ', read: 'audit:read' },
|
||||
@@ -107,3 +121,31 @@ export function productWritePermission(product: string): PermissionCode {
|
||||
if (product === 'other') return 'others:write';
|
||||
return 'khanegi:write';
|
||||
}
|
||||
|
||||
export function productUiReadPermission(product: string): PermissionCode | null {
|
||||
if (product === 'hamkar') return 'hamkar.ui:read';
|
||||
if (product === 'khanegi') return 'khanegi.ui:read';
|
||||
return null;
|
||||
}
|
||||
|
||||
export function productUiWritePermission(product: string): PermissionCode | null {
|
||||
if (product === 'hamkar') return 'hamkar.ui:write';
|
||||
if (product === 'khanegi') return 'khanegi.ui:write';
|
||||
return null;
|
||||
}
|
||||
|
||||
/** Any read access to a product section (list / manage / ui / settings). */
|
||||
export function productAnyReadPermissions(product: string): PermissionCode[] {
|
||||
if (product === 'hamkar') return ['hamkar:read', 'hamkar.ui:read'];
|
||||
if (product === 'other') return ['others:read'];
|
||||
return ['khanegi:read', 'khanegi.ui:read', 'khanegi.settings:read'];
|
||||
}
|
||||
|
||||
export const ANY_TENANT_READ: PermissionCode[] = [
|
||||
'hamkar:read',
|
||||
'hamkar.ui:read',
|
||||
'khanegi:read',
|
||||
'khanegi.ui:read',
|
||||
'khanegi.settings:read',
|
||||
'others:read',
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user