findAll(); $roles = $this->permissionServiceHelper->getUserRoles(); if ($request->isMethod('POST')) { $data = $request->request->all('permissions'); foreach ($permissions as $permission) { foreach ($roles as $role) { $checkboxValue = isset($data[$permission->getSlug()][$role]); $permRelRole = $permissionRelRoleRepo->findOneBy(['permission' => $permission, 'roleCode' => $role]); if ($checkboxValue) { if (!$permRelRole) { $permRelRole = new PermissionRelRole(); $permRelRole->setPermission($permission); $permRelRole->setRoleCode($role); } $permRelRole->setChangeable(true); $permRelRole->setUpdatedAt(new DateTime()); $em->persist($permRelRole); } else { if ($permRelRole) { $em->remove($permRelRole); } } } } $em->flush(); return $this->redirectToRoute('permissions'); } $forms = []; foreach ($permissions as $permission) { $defaultData = []; foreach ($roles as $role) { $permRelRole = $permissionRelRoleRepo->findOneBy(['permission' => $permission, 'roleCode' => $role]); $defaultData[$role] = $permRelRole ? $permRelRole->isChangeable() : false; } $form = $this->createForm(PermissionType::class, $defaultData, ['roles' => $roles]); $forms[$permission->getSlug()] = $form->createView(); } return $this->render('@ChamiloCore/Permission/index.html.twig', [ 'permissions' => $permissions, 'forms' => $forms, 'roles' => $roles, ]); } #[Route('/is_allowed_to_edit', name: 'is_allowed_to_edit')] public function isAllowedToEdit(Request $request): Response { $tutor = $request->query->getBoolean('tutor'); $coach = $request->query->getBoolean('coach'); $sessionCoach = $request->query->getBoolean('sessioncoach'); $checkStudentView = $request->query->getBoolean('checkstudentview'); $isAllowed = api_is_allowed_to_edit( $tutor, $coach, $sessionCoach, $checkStudentView ); return $this->json([ 'isAllowedToEdit' => $isAllowed, ]); } }