forgetCachedPermissions(); $master = [ 'view-academic-terms', 'create-academic-terms', 'update-academic-terms', 'delete-academic-terms', 'update-academic-terms-status', 'view-departments', 'create-departments', 'update-departments', 'delete-departments', 'view-courses', 'create-courses', 'update-courses', 'delete-courses', ]; $academicClasses = [ 'view-materials', 'create-materials', 'update-materials', 'delete-materials', 'view-assignments', 'create-assignments', 'update-assignments', 'delete-assignments', 'view-assignment-submissions', 'create-assignment-submissions', 'update-assignment-submissions', 'delete-assignment-submissions', 'view-schedules', 'create-schedules', 'update-schedules', 'delete-schedules', 'view-attendances', 'create-attendances', 'delete-attendances', ]; $manage = [ 'view-course-classes', 'create-course-classes', 'update-course-classes', 'delete-course-classes', 'view-course-class-enrollments', 'create-course-class-enrollments', 'delete-course-class-enrollments', 'view-course-registrations', 'create-course-registrations', 'approve-course-registrations', 'reject-course-registrations', 'view-announcements', 'create-announcements', 'update-announcements', 'delete-announcements', ]; $finances = [ 'view-tuition-invoices', 'create-tuition-invoices', 'update-tuition-invoices', 'delete-tuition-invoices', 'view-tuition-payments', 'create-tuition-payments', 'update-tuition-payments', 'delete-tuition-payments', ]; $services = [ 'view-letter-requests', 'create-letter-requests', 'update-letter-requests', 'delete-letter-requests', 'view-academic-advising-logs', 'create-academic-advising-logs', 'update-academic-advising-logs', 'delete-academic-advising-logs', ]; $users = [ 'view-lecturers', 'create-lecturers', 'update-lecturers', 'delete-lecturers', 'reset-lecturers-password', 'update-lecturers-status', 'export-lecturers', 'view-students', 'create-students', 'update-students', 'delete-students', 'reset-students-password', 'update-students-academic-status', 'update-students-account-status', 'export-students', 'view-administrators', 'create-administrators', 'update-administrators', 'delete-administrators', 'reset-administrators-password', 'update-administrators-status', ]; $developer = [ 'view-logs', ]; $permissionNames = [ 'view-dashboard', ...$master, ...$academicClasses, ...$manage, ...$finances, ...$services, ...$users, ...$developer, ]; foreach ($permissionNames as $name) { Permission::firstOrCreate(['name' => $name, 'guard_name' => 'web']); } app()[PermissionRegistrar::class]->forgetCachedPermissions(); $roles = [ 'mahasiswa' => ['view-dashboard'], 'dosen' => ['view-dashboard'], 'staff-admin' => [ 'view-dashboard', ...$master, ...$academicClasses, ...$manage, ...$services, ...$users, ], 'staff-keuangan' => [ 'view-dashboard', ...$finances, ], 'kaprodi' => [ 'view-dashboard', 'view-academic-terms', 'view-courses', 'view-course-classes', 'view-course-registrations', 'view-students', ], 'developer' => $permissionNames, ]; foreach ($roles as $roleName => $rolePermissions) { $role = Role::firstOrCreate(['name' => $roleName, 'guard_name' => 'web']); $role->syncPermissions($rolePermissions); } } }