where('name', $role)->first()) { $roleModel->save(['name' => $role]); } } foreach ($permissions as $permission) { if (!$permissionModel->where('name', $permission)->first()) { $permissionModel->save(['name' => $permission]); } } // Associating permissions with roles $rolePermissions = [ 'administrator' => ['manage_users', 'view_reports', 'manage_settings', 'access_student_records', 'communicate_parents'], 'principal' => ['manage_users', 'view_reports', 'access_student_records', 'communicate_parents'], 'vice principal' => ['view_reports', 'access_student_records', 'communicate_parents'], 'teacher' => ['access_student_records', 'communicate_parents', 'enter_grades', 'access_assignments'], 'student' => ['view_own_records', 'access_assignments'], 'parent' => ['view_own_records', 'communicate_parents'], 'counselor' => ['access_student_records', 'communicate_parents'], 'librarian' => ['manage_library'], 'accountant' => ['manage_finances'], 'it support' => ['provide_technical_support'], 'receptionist' => ['handle_inquiries'], 'nurse' => ['provide_medical_assistance'], 'support staff' => ['maintain_facilities'], 'coach' => ['manage_sports_teams'], 'activity coordinator' => ['organize_activities'] ]; foreach ($rolePermissions as $role => $permissions) { $roleId = $roleModel->where('name', $role)->first()['id']; foreach ($permissions as $permission) { $permissionId = $permissionModel->where('name', $permission)->first()['id']; if (!$rolePermissionModel->where('role_id', $roleId)->where('permission_id', $permissionId)->first()) { $rolePermissionModel->save(['role_id' => $roleId, 'permission_id' => $permissionId]); } } } echo "Roles and permissions have been initialized."; } } ?>