@campxdev/shared 1.8.23 → 1.8.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@campxdev/shared",
3
- "version": "1.8.23",
3
+ "version": "1.8.25",
4
4
  "main": "./exports.ts",
5
5
  "scripts": {
6
6
  "start": "react-scripts start",
@@ -30,12 +30,23 @@ import { axiosErrorToast } from '../../config/axios'
30
30
  import { DialogButton } from '../ModalButtons'
31
31
  import SearchBar from '../FilterComponents/SearchBar'
32
32
  import Table from '../Tables/BasicTable/Table'
33
+ import { ValidateAccess } from '../../permissions'
34
+ import { Permission, PermissionsStore } from '../../shared-state'
33
35
 
34
36
  interface ApplicationProfileProps {
35
37
  application: 'exams' | 'square' | 'payments' | 'enroll_x'
38
+ title: string
39
+ permissions?: {
40
+ add: string
41
+ edit: string
42
+ view: string
43
+ delete: string
44
+ }
36
45
  }
37
46
  function ApplicationProfile({
38
47
  application = 'exams',
48
+ title,
49
+ permissions,
39
50
  }: ApplicationProfileProps) {
40
51
  const { isConfirmed } = useConfirm()
41
52
  const [filters, setFilters] = useImmer(defaultFilterObj)
@@ -83,6 +94,7 @@ function ApplicationProfile({
83
94
  data={row}
84
95
  application={application}
85
96
  refetchFn={refetch}
97
+ permissions={permissions}
86
98
  />
87
99
  ),
88
100
  },
@@ -91,13 +103,21 @@ function ApplicationProfile({
91
103
  key: '',
92
104
  dataIndex: '',
93
105
  render: (_, row) => (
94
- <Button
95
- variant="text"
96
- onClick={() => handleRemove(row)}
97
- sx={{ padding: '0px', margin: '0px' }}
106
+ <ValidateAccess
107
+ accessKey={
108
+ permissions
109
+ ? Permission[permissions.delete]
110
+ : Permission.CAN_DASHBOARD_VIEW
111
+ }
98
112
  >
99
- Remove
100
- </Button>
113
+ <Button
114
+ variant="text"
115
+ onClick={() => handleRemove(row)}
116
+ sx={{ padding: '0px', margin: '0px' }}
117
+ >
118
+ Remove
119
+ </Button>
120
+ </ValidateAccess>
101
121
  ),
102
122
  },
103
123
  ]
@@ -119,24 +139,33 @@ function ApplicationProfile({
119
139
  return (
120
140
  <>
121
141
  <PageHeader
122
- title={'Profile Configuration'}
142
+ title={title}
123
143
  actions={[
124
- <DialogButton
144
+ <ValidateAccess
125
145
  key={0}
126
- title={'Add User Profile Relation'}
127
- anchor={({ open }) => (
128
- <ActionButton onClick={open}>
129
- Add User Profile Relation
130
- </ActionButton>
131
- )}
132
- content={({ close }) => (
133
- <UserProfileRelation
134
- close={close}
135
- application={application}
136
- profiles={profiles?.profiles}
137
- />
138
- )}
139
- />,
146
+ accessKey={
147
+ permissions
148
+ ? Permission[permissions.add]
149
+ : Permission.CAN_DASHBOARD_VIEW
150
+ }
151
+ >
152
+ <DialogButton
153
+ key={0}
154
+ title={'Add User Profile Relation'}
155
+ anchor={({ open }) => (
156
+ <ActionButton onClick={open}>
157
+ Add User Profile Relation
158
+ </ActionButton>
159
+ )}
160
+ content={({ close }) => (
161
+ <UserProfileRelation
162
+ close={close}
163
+ application={application}
164
+ profiles={profiles?.profiles}
165
+ />
166
+ )}
167
+ />
168
+ </ValidateAccess>,
140
169
  ]}
141
170
  />
142
171
  <PageContent sx={{ marginTop: '25px' }}>
@@ -178,7 +207,12 @@ export const RenderProfileDropDown = ({
178
207
  data,
179
208
  refetchFn,
180
209
  application,
210
+ permissions,
181
211
  }) => {
212
+ const permissionState = PermissionsStore.useState((s) => s)
213
+ const CanEdit = permissions
214
+ ? permissionState.permissions[Permission[permissions.edit]]
215
+ : permissionState.permissions['can_dashboard_view']
182
216
  const [state, setState] = useState({
183
217
  userId: data.id,
184
218
  profileId: data.profiles[0].id,
@@ -216,6 +250,7 @@ export const RenderProfileDropDown = ({
216
250
  onChange={(e) => {
217
251
  handleChange(e)
218
252
  }}
253
+ disabled={!CanEdit}
219
254
  endAdornment={
220
255
  isLoading && (
221
256
  <InputAdornment position="end">
@@ -11,10 +11,12 @@ import {
11
11
  StyledLink,
12
12
  StyledImageBox,
13
13
  } from './styles'
14
+ import { PermissionsStore } from '../../../shared-state'
14
15
 
15
16
  export const campxTenantKey = Cookies.get('campx_tenant')
16
17
 
17
18
  const AppsMenu = () => {
19
+ const permissionState = PermissionsStore.useState((s) => s)
18
20
  const [anchorEl, setAnchorEl] = useState<any>(null)
19
21
  const open = Boolean(anchorEl)
20
22
 
@@ -64,22 +66,28 @@ const AppsMenu = () => {
64
66
  <Typography variant="body2">Switch to</Typography>
65
67
  </Box>
66
68
  <Box>
67
- {applications.map((item, index) => (
68
- <StyledLink
69
- href={item.path + `/${campxTenantKey ?? ''}`}
70
- key={index}
71
- >
72
- <StyledMenuItemContainer
73
- key={index}
74
- onClick={() => {
75
- window.location.href = item.path
76
- handleClose()
77
- }}
78
- >
79
- <MenuItem data={item} />
80
- </StyledMenuItemContainer>
81
- </StyledLink>
82
- ))}
69
+ {applications.map((item, index) => {
70
+ if (permissionState.applications.includes(item.key)) {
71
+ return (
72
+ <StyledLink
73
+ href={item.path + `/${campxTenantKey ?? ''}`}
74
+ key={index}
75
+ >
76
+ <StyledMenuItemContainer
77
+ key={index}
78
+ onClick={() => {
79
+ window.location.href = item.path
80
+ handleClose()
81
+ }}
82
+ >
83
+ <MenuItem data={item} />
84
+ </StyledMenuItemContainer>
85
+ </StyledLink>
86
+ )
87
+ } else {
88
+ return null
89
+ }
90
+ })}
83
91
  </Box>
84
92
  </Menu>
85
93
  </>
@@ -45,7 +45,7 @@ export const applications = [
45
45
  title: 'CollegeX',
46
46
  path: isDevelopment ? origins.ums.dev : origins.ums.prod,
47
47
  icon: campxSquareSmall,
48
- key: 'ums',
48
+ key: 'square',
49
49
  description: 'Manage Complete Campus Activities',
50
50
  },
51
51
  {
@@ -64,7 +64,7 @@ export const applications = [
64
64
  },
65
65
  {
66
66
  title: 'EnrollX',
67
- key: 'enroll',
67
+ key: 'enroll_x',
68
68
  path: isDevelopment ? origins.enroll.dev : origins.enroll.prod,
69
69
  icon: enrollSmall,
70
70
  description: 'Manage Admissions in the Campus',
@@ -94,10 +94,4 @@ export const applications = [
94
94
  },
95
95
  ]
96
96
  : []),
97
- // {
98
- // title: 'EnrollX',
99
- // path: '/hostel',
100
- // icon: enrollHeaderLogo,
101
- // // description: 'Manage Admissions in the Campus',
102
- // },
103
97
  ]
@@ -58,7 +58,7 @@ export { default as ReactTable } from './Tables/ReactTable'
58
58
  export { default as TableFooter } from './Tables/BasicTable/TableFooter'
59
59
  export { default as DropDownButton } from './DropDownButton'
60
60
  export { default as useConfirm } from './PopupConfirm/useConfirm'
61
-
61
+ export { default } from './ApplicationProfile'
62
62
  export {
63
63
  UploadFileDialog,
64
64
  Chips,
@@ -38,6 +38,21 @@ function useAuth({ permissionsEndpoint, loginUrl }: AuthParams): AuthResponse {
38
38
  axios
39
39
  .get(permissionsEndpoint)
40
40
  .then((res) => {
41
+ const origin = window.location.origin
42
+ const domain = origin.split('campx')[0].split('//')[1]
43
+
44
+ const isStaging = origin.split('campx')[1] === '.dev'
45
+ if (!isDevelopment) {
46
+ if (!res.data.applications.includes(domain) && domain !== 'ums') {
47
+ if (isStaging) {
48
+ window.location.replace(`https://www.ums.campx.dev`)
49
+ } else {
50
+ window.location.replace(`https://www.ums.campx.in`)
51
+ }
52
+ }
53
+ return
54
+ }
55
+
41
56
  setLoading(false)
42
57
  setData(res.data)
43
58
  UserStore.update((s) => {
@@ -53,6 +68,7 @@ function useAuth({ permissionsEndpoint, loginUrl }: AuthParams): AuthResponse {
53
68
  can_dashboard_view: 1,
54
69
  can_individual_pages_view: 1,
55
70
  } as any
71
+ s.applications = res.data?.applications ?? []
56
72
  })
57
73
  AssetsStore.update((s) => {
58
74
  s.logo = res.data?.assets.logo
@@ -1,82 +1,23 @@
1
1
  import { Store } from 'pullstate'
2
2
 
3
3
  export enum Permission {
4
- VIEW_AUDIT_LOGS = 'can_view_audit_logs',
5
- STUDENTS_VIEW = 'can_students_view',
6
- ADMISSIONS_VIEW = 'can_admissions_view',
7
- USERS_VIEW = 'can_users_view',
8
- SUBJECTS_VIEW = 'can_subjects_view',
9
- COURSE_REGISTRATION_VIEW = 'can_course_registration_view',
10
- END_SEMESTER_EXAMINATIONS_VIEW = 'can_end_semester_examinations_view',
11
- INTERNAL_EXAMINATIONS_VIEW = 'can_internal_examinations_view',
12
- VIEW_ANSWER_SHEET_REPORT = 'can_view_answer_sheet_report',
13
- SEATING_PLAN = 'can_examinations_seating_plan',
14
- VIEW_REPORTS = 'can_results_processing_view_reports',
15
- CAN_ADD_FEED = 'can_feed_add',
16
- MARKS_DIVISION = 'can_examinations_manage_marks_division',
17
-
18
- //classroom
19
-
20
- CLASSROOM_VIEW = 'can_classroom_view',
21
- CLASSROOM_EDIT = 'can_classroom_edit',
22
- CLASSROOM_DELETE = 'can_classroom_delete',
23
- CLASSROOM_ADD = 'can_classroom_add',
24
- CAN_CLASSROOM_SUBJECTS_VIEW = 'can_classroom_subjects_view',
25
- CAN_CLASSROOM_SUBJECT_ATTENDANCE_EDIT = 'can_classroom_subject_attendance_edit',
26
-
27
- // Tasks
28
-
29
- CAN_TASKS_ADD = 'can_tasks_add',
30
- CAN_TASKS_DELETE = 'can_tasks_delete',
31
- CAN_TASKS_EDIT = 'can_tasks_edit',
32
- CAN_TASKS_VIEW = 'can_tasks_view',
33
- CAN_TASKS_CHANGE_STATUS = 'can_tasks_change_status',
34
- CAN_REVOKE_MARKS = 'can_classroom_revoke_marks',
35
-
36
- // Academic Calendar
37
-
38
- ACADEMIC_CALENDAR_VIEW = 'can_academic_calendar_view',
39
- ACADEMIC_CALENDAR_EVENT_ADD = 'can_academic_calendar_event_add',
40
- ACADEMIC_CALENDAR_EVENT_EDIT = 'can_academic_calendar_event_edit',
41
- ACADEMIC_CALENDAR_EVENT_DELETE = 'can_academic_calendar_event_delete',
42
-
43
- //Departments
44
- CAN_DEPARTMENTS_VIEW = 'can_departments_view',
45
- CAN_DEPARTMENTS_ADD = 'can_departments_add',
46
- CAN_DEPARTMENTS_EDIT = 'can_departments_edit',
47
- CAN_DEPARTMENTS_DELETE = 'can_departments_delete',
48
-
49
- //Designations
50
- DESIGNATIONS_ADD = 'can_designations_add',
51
- DESIGNATIONS_DELETE = 'can_designations_delete',
52
- DESIGNATIONS_EDIT = 'can_designations_edit',
53
- DESIGNATIONS_VIEW = 'can_designations_view',
54
-
55
- //bundling
56
-
57
- BUNDLING_VIEW = 'can_bundling_view',
58
- BUNDLING_ADD = 'can_bundling_add',
59
- BUNDLING_EDIT = 'can_bundling_edit',
60
- BUNDLING_DELETE = 'can_bundling_delete',
61
-
4
+ // Square
62
5
  // manage
63
6
  MANAGE_ROLES_AND_PROFILES = 'can_manage_roles_and_profiles',
7
+ VIEW_AUDIT_LOGS = 'can_view_audit_logs',
8
+ MANAGE_SETTINGS = 'can_manage_settings',
64
9
 
65
- MANAGE_USER_GROUPS = 'can_manage_user_groups',
66
- MANAGE_ASSESSMENTS = 'can_manage_assessments',
10
+ // Users
11
+ USERS_VIEW = 'can_users_view',
67
12
  USERS_ADD = 'can_users_add',
68
13
  USERS_EDIT = 'can_users_edit',
69
14
  USERS_DELETE = 'can_users_delete',
70
15
  USERS_REORDER = 'can_users_reorder',
71
16
  USERS_UPLOAD_PHOTOS = 'can_user_upload_photos',
72
17
  USERS_EXPORT = 'can_users_export',
73
- ADMISSIONS_ADD = 'can_admissions_add',
74
- ADMISSIONS_EDIT = 'can_admissions_edit',
75
- ADMISSIONS_DELETE = 'can_admissions_delete',
76
- ADMISSIONS_CHANGE_STATUS = 'can_admissions_change_status',
77
- ADMISSIONS_IMPORT = 'can_admissions_import',
78
- ADMISSIONS_EXPORT = 'can_admissions_export',
79
- ADMISSIONS_CONFIRM = 'can_admissions_confirm',
18
+
19
+ // Students
20
+ STUDENTS_VIEW = 'can_students_view',
80
21
  STUDENTS_ADD = 'can_students_add',
81
22
  STUDENTS_EDIT = 'can_students_edit',
82
23
  STUDENTS_DELETE = 'can_students_delete',
@@ -87,76 +28,165 @@ export enum Permission {
87
28
  STUDENTS_UPLOAD_PHOTOS = 'can_students_upload_photos',
88
29
  STUDENTS_TRANSFER = 'can_students_transfer',
89
30
  STUDENTS_ALLOTMENT = 'can_students_allotment',
31
+
32
+ // Subjects
33
+ SUBJECTS_VIEW = 'can_subjects_view',
90
34
  SUBJECTS_ADD = 'can_subjects_add',
91
35
  SUBJECTS_EDIT = 'can_subjects_edit',
92
36
  SUBJECTS_DELETE = 'can_subjects_delete',
93
37
  SUBJECTS_EDIT_SUBJECT_INFO = 'can_subjects_edit_subject_info',
38
+ SUBJECTS_BATCH_CONFIG_VIEW = 'can_subjects_batch_config_view',
39
+ SUBJECTS_BATCH_CONFIG_EDIT = 'can_subjects_batch_config_edit',
40
+
41
+ // Course Registartions
42
+ COURSE_REGISTRATION_VIEW = 'can_course_registration_view',
94
43
  COURSE_REGISTRATION_ADD = 'can_course_registration_add',
95
44
  COURSE_REGISTRATION_EDIT = 'can_course_registration_edit',
96
45
  COURSE_REGISTRATION_DELETE = 'can_course_registration_delete',
97
- END_SEMESTER_EXAMINATIONS_ADD = 'can_end_semester_examinations_add',
98
- END_SEMESTER_EXAMINATIONS_EDIT = 'can_end_semester_examinations_edit',
99
- END_SEMESTER_EXAMINATIONS_DELETE = 'can_end_semester_examinations_delete',
100
- END_SEMESTER_EXAMINATIONS_SEATING_PLAN = 'can_end_semester_examinations_seating_plan',
101
- END_SEMESTER_EXAMINATIONS_MANAGE_EXAM_FEE = 'can_end_semester_examinations_manage_exam_fee',
102
- END_SEMESTER_EXAMINATIONS_D_FORMS = 'can_end_semester_examinations_d_forms',
103
- END_SEMESTER_EXAMINATIONS_BUNDLING = 'can_end_semester_examinations_bundling',
104
- END_SEMESTER_EXAMINATIONS_MARKS_ENTRY = 'can_end_semester_examinations_marks_entry',
105
- END_SEMESTER_EXAMINATIONS_INVIGILATIONS = 'can_end_semester_examinations_invigilations',
106
- INTERNAL_EXAMINATIONS_ADD = 'can_internal_examinations_add',
107
- INTERNAL_EXAMINATIONS_EDIT = 'can_internal_examinations_edit',
108
- INTERNAL_EXAMINATIONS_DELETE = 'can_internal_examinations_delete',
109
- INTERNAL_EXAMINATIONS_MANAGE_EXAM_FEE = 'can_internal_examinations_manage_exam_fee',
110
- INTERNAL_EXAMINATIONS_MANAGE_HALLTICKETS = 'can_internal_examinations_manage_halltickets',
111
- INTERNAL_EXAMINATIONS_SEATING_PLAN = 'can_internal_examinations_seating_plan',
112
- INTERNAL_EXAMINATIONS_INVIGILATIONS = 'can_internal_examinations_invigilations',
46
+
47
+ // Extra Cirricular activities
113
48
  EXTRA_CURRICULAR_ACTIVITIES_NEWS_FEED = 'can_extra_curricular_activities_news_feed',
114
49
  EXTRA_CURRICULAR_ACTIVITIES_CLUBS = 'can_extra_curricular_activities_clubs',
115
50
  EXTRA_CURRICULAR_ACTIVITIES_EVENTS = 'can_extra_curricular_activities_events',
116
- EDIT_ANSWER_SHEET_MARKS = 'can_edit_answer_sheet_marks',
117
- EDIT_EXTERNAL_MARKS = 'can_edit_external_marks',
118
- EXAM_COLLATERALS = 'can_exam_collaterals',
119
- REVALUTION = 'can_revaluation',
120
- EDIT_INTERNAL_MARKS = 'can_edit_internal_marks',
121
- PROCESS_RESULTS = 'can_process_results',
122
- CAN_PROGRAMS_ADD = 'can_programs_add',
123
- CAN_PROGRAMS_DELETE = 'can_programs_delete',
124
- CAN_PROGRAMS_EDIT = 'can_programs_edit',
125
- CAN_PROGRAMS_VIEW = 'can_programs_view',
51
+
52
+ //Classroom
53
+
54
+ CLASSROOM_VIEW = 'can_classroom_view',
55
+ CLASSROOM_EDIT = 'can_classroom_edit',
56
+ CLASSROOM_DELETE = 'can_classroom_delete',
57
+ CLASSROOM_ADD = 'can_classroom_add',
58
+ CLASSROOM_REPORTS = 'can_classroom_reports',
59
+ CLASSROOM_REASSIGN_FACULTY = 'can_classroom_re_assign_faculty',
60
+ CAN_REVOKE_MARKS = 'can_classroom_revoke_marks',
61
+ CAN_CLASSROOM_SUBJECTS_VIEW = 'can_classroom_subjects_view',
62
+ CAN_CLASSROOM_SUBJECT_ATTENDANCE_EDIT = 'can_classroom_subject_attendance_edit',
63
+
64
+ // Feed
65
+ CAN_ADD_FEED = 'can_feed_add',
66
+
67
+ // Degrees
126
68
  CAN_DEGRESS_ADD = 'can_degrees_add',
127
69
  CAN_DEGRESS_DELETE = 'can_degrees_delete',
128
70
  CAN_DEGRESS_EDIT = 'can_degrees_edit',
129
- CAN_SETTINGS_VIEW = 'can_settings_view',
130
- CAN_DASHBOARD_VIEW = 'can_dashboard_view',
131
71
  CAN_DEGRESS_VIEW = 'can_degrees_view',
72
+
73
+ // Programs
74
+ CAN_PROGRAMS_ADD = 'can_programs_add',
75
+ CAN_PROGRAMS_DELETE = 'can_programs_delete',
76
+ CAN_PROGRAMS_EDIT = 'can_programs_edit',
77
+ CAN_PROGRAMS_VIEW = 'can_programs_view',
78
+
79
+ // Semesters
132
80
  CAN_SEMESTERS_ADD = 'can_semesters_add',
133
81
  CAN_SEMESTERS_DELETE = 'can_semesters_delete',
134
82
  CAN_SEMESTERS_EDIT = 'can_semesters_edit',
135
83
  CAN_SEMESTERS_VIEW = 'can_semesters_view',
84
+
85
+ // Curriculums
136
86
  CAN_CURRICULUMS_ADD = 'can_curriculums_add',
137
- CAN_CURRICULUMS_DELETE = 'can_curriculums_delete',
138
87
  CAN_CURRICULUMS_EDIT = 'can_curriculums_edit',
88
+ CAN_CURRICULUMS_DELETE = 'can_curriculums_delete',
139
89
  CAN_CURRICULUMS_VIEW = 'can_curriculums_view',
140
- CAN_ASSESSMENT_RULES_ADD = 'can_assessment_rules_add',
141
- CAN_ASSESSMENT_RULES_DELETE = 'can_assessment_rules_delete',
142
- CAN_ASSESSMENT_RULES_EDIT = 'can_assessment_rules_edit',
143
- CAN_ASSESSMENT_RULES_VIEW = 'can_assessment_rules_view',
90
+
91
+ // Subject types
92
+ SUBJECT_TYPE_VIEW = 'can_subject_types_view',
93
+ SUBJECT_TYPE_ADD = 'can_subject_types_add',
94
+ SUBJECT_TYPE_EDIT = 'can_subject_types_edit',
95
+ SUBJECT_TYPE_DELETE = 'can_subject_types_delete',
96
+ ADMISSIONS_VIEW = 'can_admissions_view',
97
+
98
+ // Assessment Type
99
+ ASSESSMENT_TYPE_VIEW = 'can_assessment_types_view',
100
+ ASSESSMENT_TYPE_ADD = 'can_assessment_types_add',
101
+ ASSESSMENT_TYPE_EDIT = 'can_assessment_types_edit',
102
+ ASSESSMENT_TYPE_DELETE = 'can_assessment_types_delete',
103
+
104
+ // Assessment Templates
144
105
  CAN_ASSESSMENT_TEMPLATES_ADD = 'can_assessment_templates_add',
145
106
  CAN_ASSESSMENT_TEMPLATES_EDIT = 'can_assessment_templates_edit',
146
107
  CAN_ASSESSMENT_TEMPLATES_VIEW = 'can_assessment_templates_view',
147
108
  CAN_ASSESSMENT_TEMPLATES_DELETE = 'can_assessment_templates_delete',
148
- CAN_RESULTS_PROCESSING_GENERATE_MEMOS = 'can_results_processing_generate_memos',
149
- CAN_RESULTS_PROCESSING_MODERATION_AND_GRAFTING = 'can_results_processing_moderation_and_grafting',
150
- CAN_RESULTS_PROCESSING_PUBLISH_RESULTS = 'can_results_processing_publish_results',
151
- CAN_RESULTS_PROCESSING_UPDATE_INTERNAL_MARKS = 'can_results_processing_update_internal_marks',
152
- CAN_RESULTS_PROCESSING_VIEW = 'can_results_processing_view',
153
109
 
154
- //newly added permissions
110
+ // Assessment Rules
111
+ CAN_ASSESSMENT_RULES_ADD = 'can_assessment_rules_add',
112
+ CAN_ASSESSMENT_RULES_DELETE = 'can_assessment_rules_delete',
113
+ CAN_ASSESSMENT_RULES_EDIT = 'can_assessment_rules_edit',
114
+ CAN_ASSESSMENT_RULES_VIEW = 'can_assessment_rules_view',
115
+
116
+ // Schools
117
+ SCHOOLS_VIEW = 'can_schools_view',
118
+ SCHOOLS_ADD = 'can_schools_add',
119
+ SCHOOLS_EDIT = 'can_schools_edit',
120
+ SCHOOLS_DELETE = 'can_schools_delete',
121
+
122
+ // Master Subjects
123
+ CAN_MASTER_SUBJECT_VIEW = 'can_master_subject_view',
124
+ CAN_MASTER_SUBJECT_ADD = 'can_master_subject_add',
125
+ CAN_MASTER_SUBJECT_EDIT = 'can_master_subject_edit',
126
+ CAN_MASTER_SUBJECT_DELETE = 'can_master_subject_delete',
155
127
 
128
+ // Tasks
129
+ CAN_TASKS_ADD = 'can_tasks_add',
130
+ CAN_TASKS_DELETE = 'can_tasks_delete',
131
+ CAN_TASKS_EDIT = 'can_tasks_edit',
132
+ CAN_TASKS_VIEW = 'can_tasks_view',
133
+ CAN_TASKS_CHANGE_STATUS = 'can_tasks_change_status',
134
+
135
+ // Academic Calendar
136
+ ACADEMIC_CALENDAR_VIEW = 'can_academic_calendar_view',
137
+ ACADEMIC_CALENDAR_EVENT_ADD = 'can_academic_calendar_event_add',
138
+ ACADEMIC_CALENDAR_EVENT_EDIT = 'can_academic_calendar_event_edit',
139
+ ACADEMIC_CALENDAR_EVENT_DELETE = 'can_academic_calendar_event_delete',
140
+
141
+ // Time Slots
142
+ CAN_TIME_SLOTS_VIEW = 'can_time_slots_view',
143
+ CAN_TIME_SLOTS_ADD = 'can_time_slots_add',
144
+ CAN_TIME_SLOTS_EDIT = 'can_time_slots_edit',
145
+ CAN_TIME_SLOTS_DELETE = 'can_time_slots_delete',
146
+
147
+ //Departments
148
+ CAN_DEPARTMENTS_VIEW = 'can_departments_view',
149
+ CAN_DEPARTMENTS_ADD = 'can_departments_add',
150
+ CAN_DEPARTMENTS_EDIT = 'can_departments_edit',
151
+ CAN_DEPARTMENTS_DELETE = 'can_departments_delete',
152
+
153
+ //Designations
154
+ DESIGNATIONS_ADD = 'can_designations_add',
155
+ DESIGNATIONS_DELETE = 'can_designations_delete',
156
+ DESIGNATIONS_EDIT = 'can_designations_edit',
157
+ DESIGNATIONS_VIEW = 'can_designations_view',
158
+
159
+ // Enroll X
160
+ // Admissions
161
+ ADMISSIONS_ADD = 'can_admissions_add',
162
+ ADMISSIONS_EDIT = 'can_admissions_edit',
163
+ ADMISSIONS_DELETE = 'can_admissions_delete',
164
+ ADMISSIONS_CHANGE_STATUS = 'can_admissions_change_status',
165
+ ADMISSIONS_IMPORT = 'can_admissions_import',
166
+ ADMISSIONS_EXPORT = 'can_admissions_export',
167
+ ADMISSIONS_CONFIRM = 'can_admissions_confirm',
168
+ CAN_ADMISSIONS_DASHBOARD_VIEW = 'can_admission_dashboard_view',
169
+
170
+ // CET & PHD
156
171
  CAN_PHD_FORM_VIEW = 'can_admissions_view_phd_applications',
157
172
  CAN_PHD_FORM_DOWNLOAD = 'can_admissions_download_phd_applications',
158
173
  CAN_CET_VIEW = 'can_admissions_view_cet',
159
174
  CAN_CET_DOWNLOAD = 'can_admissions_download_cet',
175
+
176
+ // Quotas
177
+ CAN_QUOTAS_EDIT = 'can_quotas_edit',
178
+ CAN_QUOTAS_DELETE = 'can_quotas_delete',
179
+ CAN_QUOTAS_ADD = 'can_quotas_add',
180
+ CAN_QUOTAS_VIEW = 'can_quotas_view',
181
+
182
+ // Lead Status
183
+ CAN_LEAD_STATUS_VIEW = 'can_lead_status_view',
184
+ CAN_LEAD_STATUS_EDIT = 'can_lead_status_edit',
185
+ CAN_LEAD_STATUS_ADD = 'can_lead_status_add',
186
+ CAN_LEAD_STATUS_DELETE = 'can_lead_status_delete',
187
+
188
+ //Hostels
189
+ // Hosteler
160
190
  CAN_HOSTELER_DASHBOARD_VIEW = 'can_hosteler_dashboard_view',
161
191
  CAN_HOSTELER_VIEW = 'can_hosteler_view',
162
192
  CAN_HOSTELER_ADD = 'can_hosteler_add',
@@ -165,6 +195,8 @@ export enum Permission {
165
195
  CAN_HOSTELER_FACE_DATA_RESET = 'can_hosteler_face_data_reset',
166
196
  CAN_HOSTELER_FEE_PAYMENT_VIEW = 'can_hosteler_fee_payments_view',
167
197
  CAN_HOSTELER_REPORTS_VIEW = 'can_hosteler_reports_view',
198
+
199
+ // Hosteler Settings
168
200
  CAN_HOSTELER_SETTINGS_VIEW_CONFIGURATION = 'can_hosteler_settings_view_configuration',
169
201
  CAN_HOSTELER_SETTINGS_EDIT_CONFIGURATION = 'can_hosteler_settings_edit_configuration',
170
202
  CAN_HOSTELER_SETTINGS_ADD_FEE_TYPES = 'can_hosteler_settings_add_fee_types',
@@ -184,55 +216,55 @@ export enum Permission {
184
216
  CAN_HOSTELERS_SETTINGS_AMENITIES_ADD = 'can_hosteler_settings_amenities_add',
185
217
  CAN_HOSTELERS_SETTINGS_AMENITIES_EDIT = 'can_hosteler_settings_amenities_edit',
186
218
  CAN_HOSTELERS_SETTINGS_AMENITIES_DELETE = 'can_hosteler_settings_amenities_delete',
187
- CAN_ADMISSIONS_DASHBOARD_VIEW = 'can_admission_dashboard_view',
188
- CAN_LEAD_STATUS_VIEW = 'can_lead_status_view',
189
- CAN_LEAD_STATUS_EDIT = 'can_lead_status_edit',
190
- CAN_LEAD_STATUS_ADD = 'can_lead_status_add',
191
- CAN_LEAD_STATUS_DELETE = 'can_lead_status_delete',
192
- SCHOOLS_VIEW = 'can_schools_view',
193
- SCHOOLS_ADD = 'can_schools_add',
194
- SCHOOLS_EDIT = 'can_schools_edit',
195
- SCHOOLS_DELETE = 'can_schools_delete',
196
- SUBJECT_TYPE_VIEW = 'can_subject_types_view',
197
- SUBJECT_TYPE_ADD = 'can_subject_types_add',
198
- SUBJECT_TYPE_EDIT = 'can_subject_types_edit',
199
- SUBJECT_TYPE_DELETE = 'can_subject_types_delete',
200
- ASSESSMENT_TYPE_VIEW = 'can_assessment_types_view',
201
- ASSESSMENT_TYPE_ADD = 'can_assessment_types_add',
202
- ASSESSMENT_TYPE_EDIT = 'can_assessment_types_edit',
203
- ASSESSMENT_TYPE_DELETE = 'can_assessment_types_delete',
204
- CLASSROOM_REPORTS = 'can_classroom_reports',
205
- CLASSROOM_REASSIGN_FACULTY = 'can_classroom_re_assign_faculty',
206
- CAN_INDIVIDUAL_PAGES_VIEW = 'can_individual_pages_view',
207
- CAN_QUOTAS_EDIT = 'can_quotas_edit',
208
- CAN_QUOTAS_DELETE = 'can_quotas_delete',
209
- CAN_QUOTAS_ADD = 'can_quotas_add',
210
- CAN_QUOTAS_VIEW = 'can_quotas_view',
211
219
 
212
220
  // Exams
221
+ // End Semester Examination
222
+ END_SEMESTER_EXAMINATIONS_VIEW = 'can_end_semester_examinations_view',
223
+ END_SEMESTER_EXAMINATIONS_ADD = 'can_end_semester_examinations_add',
224
+ END_SEMESTER_EXAMINATIONS_EDIT = 'can_end_semester_examinations_edit',
225
+ END_SEMESTER_EXAMINATIONS_DELETE = 'can_end_semester_examinations_delete',
213
226
 
214
- // OMRS
215
- CAN_OMRS_VIEW = 'can_omrs_view',
216
- CAN_OMRS_UPDATE = 'can_omrs_update',
227
+ // Registrations
228
+ CAN_REGISTARTIONS_VIEW = 'can_exam_registrations_view',
229
+ CAN_REGISTARTIONS_ADD = 'can_exam_registrations_add',
230
+
231
+ // Fee configuration
232
+ EXAM_FEE_CONFIGURATION_VIEW = 'can_exam_fee_configuration_view',
233
+ EXAM_FEE_CONFIGURATION_ADD = 'can_exam_fee_configuration_add',
234
+
235
+ // Time table
236
+ CAN_EXAM_TIMETABLE_VIEW = 'can_exam_timetable_view',
237
+ CAN_EXAM_TIMETABLE_ADD = 'can_exam_timetable_add',
238
+ CAN_EXAM_TIMETABLE_EDIT = 'can_exam_timetable_edit',
239
+ CAN_EXAM_TIMETABLE_DELETE = 'can_exam_timetable_delete',
217
240
 
218
241
  // Hall tickets
219
242
  CAN_HALL_TICKETS_VIEW = 'can_hall_tickets_view',
220
243
 
244
+ // OMRS
245
+ CAN_OMRS_VIEW = 'can_omrs_view',
246
+ CAN_OMRS_UPDATE = 'can_omrs_update',
247
+
221
248
  // Paper Configuration
222
249
  CAN_PAPER_CONFIGURATION_VIEW = 'can_paper_configuration_view',
223
250
  CAN_PAPER_CONFIGURATION_ADD = 'can_paper_configuration_add',
224
251
  CAN_PAPER_CONFIGURATION_EDIT = 'can_paper_configuration_edit',
225
252
  CAN_PAPER_CONFIGURATION_DELETE = 'can_paper_configuration_delete',
226
253
 
227
- // Time table
228
- CAN_EXAM_TIMETABLE_VIEW = 'can_exam_timetable_view',
229
- CAN_EXAM_TIMETABLE_ADD = 'can_exam_timetable_add',
230
- CAN_EXAM_TIMETABLE_EDIT = 'can_exam_timetable_edit',
231
- CAN_EXAM_TIMETABLE_DELETE = 'can_exam_timetable_delete',
254
+ // D Form
255
+ CAN_D_FORM_VIEW = 'can_d_forms_view',
256
+ CAN_D_FORM_ADD = 'can_d_forms_add',
232
257
 
233
- // Registrations
234
- CAN_REGISTARTIONS_VIEW = 'can_exam_registrations_view',
235
- CAN_REGISTARTIONS_ADD = 'can_exam_registrations_add',
258
+ // Bundling
259
+ VIEW_ANSWER_SHEET_REPORT = 'can_view_answer_sheet_report',
260
+
261
+ BUNDLING_VIEW = 'can_bundling_view',
262
+ BUNDLING_ADD = 'can_bundling_add',
263
+ BUNDLING_EDIT = 'can_bundling_edit',
264
+ BUNDLING_DELETE = 'can_bundling_delete',
265
+ BUNDLING_UPDATE_BUNDLE_STATUS = 'can_bundling_update_bundle_status',
266
+ BUNDLING_BUNDLE_SHEETS_ADD = 'can_bundling_bundle_sheets_add',
267
+ BUNDLING_BUNDLE_SHEETS_REMOVE = 'can_bundling_bundle_sheets_remove',
236
268
 
237
269
  // Internal Marks
238
270
  CAN_INTERNAL_MARKS_VIEW = 'can_internal_marks_view',
@@ -246,34 +278,87 @@ export enum Permission {
246
278
  CAN_EXTERNAL_MARKS_ADD = 'can_external_marks_add',
247
279
  CAN_EXTERNAL_MARKS_EDIT = 'can_external_marks_edit',
248
280
 
249
- // D Form
250
- CAN_D_FORM_VIEW = 'can_d_forms_view',
251
- CAN_D_FORM_ADD = 'can_d_forms_add',
281
+ // Result Processing
282
+ CAN_RESULTS_PROCESSING_VIEW = 'can_results_processing_view_reports',
283
+
284
+ CAN_RESULTS_PROCESSING_GENERATE_MEMOS = 'can_results_processing_generate_memos',
285
+ CAN_RESULTS_PROCESSING_MODERATION_AND_GRAFTING = 'can_results_processing_moderation_and_grafting',
286
+ CAN_RESULTS_PROCESSING_PUBLISH_RESULTS = 'can_results_processing_publish_results',
287
+ CAN_RESULTS_PROCESSING_UPDATE_INTERNAL_MARKS = 'can_results_processing_update_internal_marks',
288
+
289
+ // Revaluation Fee Configuration
290
+ CAN_REVALUATION_FEE_CONFIGURATION_VIEW = 'can_revaluation_fee_configuration_view',
291
+ CAN_REVAULATION_FEE_CONFIGURATION_ADD = 'can_revaluation_fee_configuration_add',
292
+
293
+ //Revaluation
294
+ CAN_REVALUATION_VIEW = 'can_revaluation_view',
295
+ CAN_REVALUATION_REGISTRATIONS_ADD = 'can_revaluation_add_registrations',
296
+ CAN_REVALUATION_OMRS = 'can_revaluation_omrs',
297
+ CAN_REVALUATION_ADD_MARKS = 'can_revaluation_add_marks',
298
+ CAN_REVALUATION_EDIT_MARKS = 'can_revaluation_edit_marks',
299
+ CAN_REVALUATION_PROCESS_REVAL = 'can_revaluation_process_reval',
300
+ CAN_REVALUATION_VIEW_REPORTS = 'can_revaluation_view_reports',
301
+ CAN_REVALUATION_GENERATE_MEMOS = 'can_revaluation_generate_memos',
302
+
303
+ // Internal Examinations
304
+ INTERNAL_EXAMINATIONS_VIEW = 'can_internal_examinations_view',
305
+ INTERNAL_EXAMINATIONS_ADD = 'can_internal_examinations_add',
306
+ INTERNAL_EXAMINATIONS_EDIT = 'can_internal_examinations_edit',
307
+ INTERNAL_EXAMINATIONS_DELETE = 'can_internal_examinations_delete',
308
+ INTERNAL_EXAMINATIONS_MANAGE_EXAM_FEE = 'can_internal_examinations_manage_exam_fee',
309
+
310
+ // Seating Plan
311
+ SEATING_PLAN = 'can_examinations_seating_plan',
312
+ CAN_SEATING_PLAN_VIEW = 'can_seating_plan_view',
313
+ CAN_SEATING_PLAN_ADD = 'can_seating_plan_add',
314
+ CAN_SEATING_PLAN_DELETE = 'can_seating_plan_delete',
315
+
316
+ // Invigilations
317
+ CAN_INVIGILATIONS_VIEW = 'can_invigilations_view',
318
+ CAN_INVIGILATIONS_ADD = 'can_invigilations_add',
252
319
 
253
320
  // Evaluators
254
321
  CAN_EVALUATORS_VIEW = 'can_evaluators_view',
255
322
  CAN_EVALUATORS_ADD = 'can_evaluators_add',
256
- CAN_EVALUATORS_EDIT = 'can_evaluators_edi',
323
+ CAN_EVALUATORS_EDIT = 'can_evaluators_edit',
257
324
  CAN_EVALUATORS_DELETE = 'can_evaluators_delete',
258
325
 
326
+ // Grades
327
+ CAN_GRADES_ADD = 'can_grades_add',
328
+ CAN_GRADES_EDIT = 'can_grades_edit',
329
+ CAN_GRADES_DELETE = 'can_grades_delete',
330
+ CAN_GRADES_VIEW = 'can_grades_view',
331
+
259
332
  // Rooms
260
333
  CAN_EXAM_ROOM_VIEW = 'can_exam_rooms_view',
261
334
  CAN_EXAM_ROOM_ADD = 'can_exam_rooms_add',
262
335
  CAN_EXAM_ROOM_EDIT = 'can_exam_rooms_edit',
263
336
  CAN_EXAM_ROOM_DELETE = 'can_exam_rooms_delete',
264
337
 
338
+ // Marks Division
339
+ CAN_MARKS_DIVISION_VIEW = 'can_marks_division_view',
340
+ CAN_MARKS_DIVISION_ADD = 'can_marks_division_add',
341
+ CAN_MARKS_DIVISION_EDIT = 'can_marks_division_edit',
342
+ CAN_MARKS_DIVISION_DELETE = 'can_marks_division_delete',
343
+
265
344
  // Time slots
266
- CAN_TIME_SLOTS_VIEW = 'can_time_slots_view',
267
- CAN_TIME_SLOTS_ADD = 'can_time_slots_add',
268
- CAN_TIME_SLOTS_EDIT = 'can_time_slots_edit',
269
- CAN_TIME_SLOTS_DELETE = 'can_time_slots_delete',
345
+ CAN_EXAM_TIME_SLOTS_VIEW = 'can_exam_time_slots_view',
346
+ CAN_EXAM_TIME_SLOTS_ADD = 'can_exam_time_slots_add',
347
+ CAN_EXAM_TIME_SLOTS_EDIT = 'can_exam_time_slots_edit',
348
+ CAN_EXAM_TIME_SLOTS_DELETE = 'can_exam_time_slots_delete',
270
349
 
271
- // Grades
350
+ CAN_INDIVIDUAL_PAGES_VIEW = 'can_individual_pages_view',
351
+ CAN_SETTINGS_VIEW = 'can_settings_view',
352
+ CAN_DASHBOARD_VIEW = 'can_dashboard_view',
272
353
 
273
- CAN_GRADES_ADD = 'can_grades_add',
274
- CAN_GRADES_EDIT = 'can_grades_edit',
275
- CAN_GRADES_DELETE = 'can_grades_delete',
276
- CAN_GRADES_VIEW = 'can_grades_view',
354
+ // MANAGE_USER_GROUPS = 'can_manage_user_groups',
355
+ // MANAGE_ASSESSMENTS = 'can_manage_assessments',
356
+ // EDIT_ANSWER_SHEET_MARKS = 'can_edit_answer_sheet_marks',
357
+ // EDIT_EXTERNAL_MARKS = 'can_edit_external_marks',
358
+ // EXAM_COLLATERALS = 'can_exam_collaterals',
359
+
360
+ // EDIT_INTERNAL_MARKS = 'can_edit_internal_marks',
361
+ // PROCESS_RESULTS = 'can_process_results',
277
362
  }
278
363
 
279
364
  export interface IPermissions {
@@ -284,7 +369,7 @@ export interface IPermissions {
284
369
  can_users_view: boolean
285
370
  can_subjects_view: boolean
286
371
  can_course_registration_view: boolean
287
- can_end_semester_examinations_view: boolean
372
+
288
373
  can_internal_examinations_view: boolean
289
374
  can_view_answer_sheet_report: boolean
290
375
  can_feed_add: boolean
@@ -337,6 +422,7 @@ export interface IPermissions {
337
422
  can_course_registration_add: boolean
338
423
  can_course_registration_edit: boolean
339
424
  can_course_registration_delete: boolean
425
+ can_end_semester_examinations_view: boolean
340
426
  can_end_semester_examinations_add: boolean
341
427
  can_end_semester_examinations_edit: boolean
342
428
  can_end_semester_examinations_delete: boolean
@@ -385,8 +471,10 @@ export interface IPermissions {
385
471
 
386
472
  interface IPermissionsStore {
387
473
  permissions: IPermissions
474
+ applications: string[]
388
475
  }
389
476
 
390
477
  export const PermissionsStore = new Store<IPermissionsStore>({
391
478
  permissions: null,
479
+ applications: [],
392
480
  })