Initial commit: admin dashboard for GameNo.

Vue 3 + Vite dashboard with PrimeVue, i18n, and API integration for institution management.
This commit is contained in:
2026-08-09 04:18:09 +02:00
commit 1a34c3b133
94 changed files with 12016 additions and 0 deletions
+217
View File
@@ -0,0 +1,217 @@
// /src/constants/permissions.js
// Mirrors the backend constants/permissions.js
export const PERMISSIONS = {
USERS_CREATE: 'users:create',
USERS_READ: 'users:read',
USERS_UPDATE: 'users:update',
USERS_DELETE: 'users:delete',
USERS_SEARCH: 'users:search',
USERS_ENROLL: 'users:enroll',
PROFESSORS_CREATE: 'professors:create',
PROFESSORS_READ: 'professors:read',
PROFESSORS_UPDATE: 'professors:update',
PROFESSORS_DELETE: 'professors:delete',
PROFESSORS_SEARCH: 'professors:search',
COURSES_CREATE: 'courses:create',
COURSES_READ: 'courses:read',
COURSES_UPDATE: 'courses:update',
COURSES_DELETE: 'courses:delete',
COURSES_SEARCH: 'courses:search',
CLASSES_CREATE: 'classes:create',
CLASSES_READ: 'classes:read',
CLASSES_UPDATE: 'classes:update',
CLASSES_DELETE: 'classes:delete',
CLASSES_SEARCH: 'classes:search',
CLASSES_REGISTER_USERS: 'classes:register_users',
SESSIONS_CREATE: 'sessions:create',
SESSIONS_READ: 'sessions:read',
SESSIONS_UPDATE: 'sessions:update',
SESSIONS_DELETE: 'sessions:delete',
SESSIONS_SEARCH: 'sessions:search',
SESSIONS_ATTENDANCE: 'sessions:attendance',
PAYMENTS_CREATE: 'payments:create',
PAYMENTS_READ: 'payments:read',
PAYMENTS_UPDATE: 'payments:update',
PAYMENTS_DELETE: 'payments:delete',
PAYMENTS_SEARCH: 'payments:search',
ROLES_CREATE: 'roles:create',
ROLES_READ: 'roles:read',
ROLES_UPDATE: 'roles:update',
ROLES_DELETE: 'roles:delete',
ROLES_SEARCH: 'roles:search',
NOTIFICATIONS_CREATE: 'notifications:create',
NOTIFICATIONS_READ: 'notifications:read',
NOTIFICATIONS_UPDATE: 'notifications:update',
NOTIFICATIONS_DELETE: 'notifications:delete',
NOTIFICATIONS_SEARCH: 'notifications:search',
NOTIFICATIONS_RETRY: 'notifications:retry',
CERTIFICATES_CREATE: 'certificates:create',
CERTIFICATES_READ: 'certificates:read',
CERTIFICATES_UPDATE: 'certificates:update',
CERTIFICATES_DELETE: 'certificates:delete',
CERTIFICATES_SEARCH: 'certificates:search',
FILES_UPLOAD: 'files:upload',
FILES_READ: 'files:read',
FILES_DELETE: 'files:delete',
LOGS_READ: 'logs:read',
LOGS_SEARCH: 'logs:search',
CONTACT_INQUIRIES_READ: 'contact_inquiries:read',
CONTACT_INQUIRIES_UPDATE: 'contact_inquiries:update'
};
export const PERMISSION_GROUPS = [
{
key: 'users',
label: 'مدیریت کاربران',
icon: 'pi pi-users',
permissions: [
{ key: PERMISSIONS.USERS_CREATE, label: 'ایجاد کاربر' },
{ key: PERMISSIONS.USERS_READ, label: 'مشاهده کاربران' },
{ key: PERMISSIONS.USERS_UPDATE, label: 'ویرایش کاربر' },
{ key: PERMISSIONS.USERS_DELETE, label: 'حذف کاربر' },
{ key: PERMISSIONS.USERS_SEARCH, label: 'جستجوی کاربران' },
{ key: PERMISSIONS.USERS_ENROLL, label: 'ثبت‌نام کاربر در دوره' }
]
},
{
key: 'professors',
label: 'مدیریت اساتید',
icon: 'pi pi-id-card',
permissions: [
{ key: PERMISSIONS.PROFESSORS_CREATE, label: 'ایجاد استاد' },
{ key: PERMISSIONS.PROFESSORS_READ, label: 'مشاهده اساتید' },
{ key: PERMISSIONS.PROFESSORS_UPDATE, label: 'ویرایش استاد' },
{ key: PERMISSIONS.PROFESSORS_DELETE, label: 'حذف استاد' },
{ key: PERMISSIONS.PROFESSORS_SEARCH, label: 'جستجوی اساتید' }
]
},
{
key: 'courses',
label: 'دوره‌های آموزشی',
icon: 'pi pi-book',
permissions: [
{ key: PERMISSIONS.COURSES_CREATE, label: 'ایجاد دوره' },
{ key: PERMISSIONS.COURSES_READ, label: 'مشاهده دوره‌ها' },
{ key: PERMISSIONS.COURSES_UPDATE, label: 'ویرایش دوره' },
{ key: PERMISSIONS.COURSES_DELETE, label: 'حذف دوره' },
{ key: PERMISSIONS.COURSES_SEARCH, label: 'جستجوی دوره‌ها' }
]
},
{
key: 'classes',
label: 'کلاس‌ها',
icon: 'pi pi-desktop',
permissions: [
{ key: PERMISSIONS.CLASSES_CREATE, label: 'ایجاد کلاس' },
{ key: PERMISSIONS.CLASSES_READ, label: 'مشاهده کلاس‌ها' },
{ key: PERMISSIONS.CLASSES_UPDATE, label: 'ویرایش کلاس' },
{ key: PERMISSIONS.CLASSES_DELETE, label: 'حذف کلاس' },
{ key: PERMISSIONS.CLASSES_SEARCH, label: 'جستجوی کلاس‌ها' },
{ key: PERMISSIONS.CLASSES_REGISTER_USERS, label: 'ثبت‌نام کاربران در کلاس' }
]
},
{
key: 'sessions',
label: 'جلسات آموزشی',
icon: 'pi pi-calendar',
permissions: [
{ key: PERMISSIONS.SESSIONS_CREATE, label: 'ایجاد جلسه' },
{ key: PERMISSIONS.SESSIONS_READ, label: 'مشاهده جلسات' },
{ key: PERMISSIONS.SESSIONS_UPDATE, label: 'ویرایش جلسه' },
{ key: PERMISSIONS.SESSIONS_DELETE, label: 'حذف جلسه' },
{ key: PERMISSIONS.SESSIONS_SEARCH, label: 'جستجوی جلسات' },
{ key: PERMISSIONS.SESSIONS_ATTENDANCE, label: 'ثبت حضور و غیاب' }
]
},
{
key: 'payments',
label: 'امور مالی و پرداخت‌ها',
icon: 'pi pi-wallet',
permissions: [
{ key: PERMISSIONS.PAYMENTS_CREATE, label: 'ایجاد صورتحساب' },
{ key: PERMISSIONS.PAYMENTS_READ, label: 'مشاهده پرداخت‌ها' },
{ key: PERMISSIONS.PAYMENTS_UPDATE, label: 'ویرایش / ثبت تراکنش' },
{ key: PERMISSIONS.PAYMENTS_DELETE, label: 'حذف صورتحساب' },
{ key: PERMISSIONS.PAYMENTS_SEARCH, label: 'جستجوی پرداخت‌ها' }
]
},
{
key: 'roles',
label: 'نقش‌ها و دسترسی‌ها',
icon: 'pi pi-shield',
permissions: [
{ key: PERMISSIONS.ROLES_CREATE, label: 'ایجاد نقش' },
{ key: PERMISSIONS.ROLES_READ, label: 'مشاهده نقش‌ها' },
{ key: PERMISSIONS.ROLES_UPDATE, label: 'ویرایش نقش' },
{ key: PERMISSIONS.ROLES_DELETE, label: 'حذف نقش' },
{ key: PERMISSIONS.ROLES_SEARCH, label: 'جستجوی نقش‌ها' }
]
},
{
key: 'notifications',
label: 'اطلاعیه‌ها و پیام‌رسانی',
icon: 'pi pi-bell',
permissions: [
{ key: PERMISSIONS.NOTIFICATIONS_CREATE, label: 'ارسال اطلاعیه' },
{ key: PERMISSIONS.NOTIFICATIONS_READ, label: 'مشاهده اطلاعیه‌ها' },
{ key: PERMISSIONS.NOTIFICATIONS_UPDATE, label: 'ویرایش اطلاعیه' },
{ key: PERMISSIONS.NOTIFICATIONS_DELETE, label: 'حذف اطلاعیه' },
{ key: PERMISSIONS.NOTIFICATIONS_SEARCH, label: 'جستجوی اطلاعیه‌ها' },
{ key: PERMISSIONS.NOTIFICATIONS_RETRY, label: 'ارسال مجدد اطلاعیه' }
]
},
{
key: 'certificates',
label: 'گواهینامه‌ها',
icon: 'pi pi-verified',
permissions: [
{ key: PERMISSIONS.CERTIFICATES_CREATE, label: 'صدور گواهینامه' },
{ key: PERMISSIONS.CERTIFICATES_READ, label: 'مشاهده گواهینامه‌ها' },
{ key: PERMISSIONS.CERTIFICATES_UPDATE, label: 'ویرایش گواهینامه' },
{ key: PERMISSIONS.CERTIFICATES_DELETE, label: 'حذف گواهینامه' },
{ key: PERMISSIONS.CERTIFICATES_SEARCH, label: 'جستجوی گواهینامه‌ها' }
]
},
{
key: 'files',
label: 'مدیریت فایل‌ها',
icon: 'pi pi-folder',
permissions: [
{ key: PERMISSIONS.FILES_UPLOAD, label: 'آپلود فایل' },
{ key: PERMISSIONS.FILES_READ, label: 'مشاهده فایل‌ها' },
{ key: PERMISSIONS.FILES_DELETE, label: 'حذف فایل' }
]
},
{
key: 'logs',
label: 'گزارش فعالیت‌ها',
icon: 'pi pi-history',
permissions: [
{ key: PERMISSIONS.LOGS_READ, label: 'مشاهده لاگ‌ها' },
{ key: PERMISSIONS.LOGS_SEARCH, label: 'جستجوی لاگ‌ها' }
]
},
{
key: 'contact_inquiries',
label: 'درخواست‌های تماس',
icon: 'pi pi-comments',
permissions: [
{ key: PERMISSIONS.CONTACT_INQUIRIES_READ, label: 'مشاهده درخواست‌ها' },
{ key: PERMISSIONS.CONTACT_INQUIRIES_UPDATE, label: 'ویرایش / پیگیری درخواست‌ها' }
]
}
];
export const ALL_PERMISSIONS = Object.values(PERMISSIONS);