Initial commit: teaching institution management API.
Express/MongoDB backend with JWT auth, RBAC, S3 uploads, notifications, and scheduled jobs.
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
// /constants/permissions.js
|
||||
|
||||
const PERMISSIONS = {
|
||||
// Users 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 permissions
|
||||
PROFESSORS_CREATE: 'professors:create',
|
||||
PROFESSORS_READ: 'professors:read',
|
||||
PROFESSORS_UPDATE: 'professors:update',
|
||||
PROFESSORS_DELETE: 'professors:delete',
|
||||
PROFESSORS_SEARCH: 'professors:search',
|
||||
|
||||
// Courses permissions
|
||||
COURSES_CREATE: 'courses:create',
|
||||
COURSES_READ: 'courses:read',
|
||||
COURSES_UPDATE: 'courses:update',
|
||||
COURSES_DELETE: 'courses:delete',
|
||||
COURSES_SEARCH: 'courses:search',
|
||||
|
||||
// Classes permissions
|
||||
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 permissions
|
||||
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 permissions
|
||||
PAYMENTS_CREATE: 'payments:create',
|
||||
PAYMENTS_READ: 'payments:read',
|
||||
PAYMENTS_UPDATE: 'payments:update',
|
||||
PAYMENTS_DELETE: 'payments:delete',
|
||||
PAYMENTS_SEARCH: 'payments:search',
|
||||
|
||||
// Roles permissions
|
||||
ROLES_CREATE: 'roles:create',
|
||||
ROLES_READ: 'roles:read',
|
||||
ROLES_UPDATE: 'roles:update',
|
||||
ROLES_DELETE: 'roles:delete',
|
||||
ROLES_SEARCH: 'roles:search',
|
||||
|
||||
// Notifications permissions
|
||||
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 permissions
|
||||
CERTIFICATES_CREATE: 'certificates:create',
|
||||
CERTIFICATES_READ: 'certificates:read',
|
||||
CERTIFICATES_UPDATE: 'certificates:update',
|
||||
CERTIFICATES_DELETE: 'certificates:delete',
|
||||
CERTIFICATES_SEARCH: 'certificates:search',
|
||||
|
||||
// Files permissions
|
||||
FILES_UPLOAD: 'files:upload',
|
||||
FILES_READ: 'files:read',
|
||||
FILES_DELETE: 'files:delete',
|
||||
|
||||
// Activity logs permissions
|
||||
LOGS_READ: 'logs:read',
|
||||
LOGS_SEARCH: 'logs:search',
|
||||
|
||||
// Contact inquiries (website form)
|
||||
CONTACT_INQUIRIES_READ: 'contact_inquiries:read',
|
||||
CONTACT_INQUIRIES_UPDATE: 'contact_inquiries:update'
|
||||
};
|
||||
|
||||
const ALL_PERMISSIONS = Object.values(PERMISSIONS);
|
||||
|
||||
module.exports = {
|
||||
PERMISSIONS,
|
||||
ALL_PERMISSIONS
|
||||
};
|
||||
Reference in New Issue
Block a user