コード例 #1
0
ファイル: Edit.php プロジェクト: acp3/module-permissions
 /**
  * @param array $formData
  * @param int   $roleId
  *
  * @return \Symfony\Component\HttpFoundation\RedirectResponse
  * @throws \Doctrine\DBAL\ConnectionException
  */
 protected function executePost(array $formData, $roleId)
 {
     return $this->actionHelper->handleEditPostAction(function () use($formData, $roleId) {
         $this->roleFormValidation->setRoleId($roleId)->validate($formData);
         $formData['parent_id'] = $roleId === 1 ? 0 : $formData['parent_id'];
         $result = $this->rolesModel->save($formData, $roleId);
         $this->rulesModel->updateRules($formData['privileges'], $roleId);
         return $result;
     });
 }
コード例 #2
0
ファイル: Delete.php プロジェクト: acp3/module-permissions
 /**
  * @param string $action
  *
  * @return array|\Symfony\Component\HttpFoundation\JsonResponse|\Symfony\Component\HttpFoundation\RedirectResponse
  * @throws \ACP3\Core\Controller\Exception\ResultNotExistsException
  */
 public function execute($action = '')
 {
     return $this->actionHelper->handleCustomDeleteAction($action, function (array $items) {
         $bool = $levelNotDeletable = false;
         foreach ($items as $item) {
             if (in_array($item, [1, 2, 4]) === true) {
                 $levelNotDeletable = true;
             } else {
                 $bool = $this->rolesModel->delete($item);
             }
         }
         $this->permissionsCache->getCacheDriver()->deleteAll();
         if ($levelNotDeletable === true) {
             $result = !$levelNotDeletable;
             $text = $this->translator->t('permissions', 'role_not_deletable');
         } else {
             $result = $bool !== false;
             $text = $this->translator->t('system', $result ? 'delete_success' : 'delete_error');
         }
         return $this->redirectMessages()->setMessage($result, $text);
     });
 }