コード例 #1
0
ファイル: AdminPresenter.php プロジェクト: fuca/sportsclub
 public function createComponentRulesGrid($name)
 {
     $grid = new Grid($this, $name);
     $grid->setModel($this->ruleService->getRulesDatasource());
     $grid->setTranslator($this->getTranslator());
     $grid->addColumnNumber('id', '#')->cellPrototype->class[] = 'center';
     $headerId = $grid->getColumn('id')->headerPrototype;
     $headerId->class[] = 'center';
     $headerId->rowspan = "2";
     $headerId->style['width'] = '0.1%';
     $grid->addColumnText('role', "securityModule.admin.grid.role")->setSortable()->setFilterSelect([null => null] + $this->getSelectRoles());
     $headerParent = $grid->getColumn('role')->headerPrototype;
     $headerParent->class[] = 'center';
     $grid->addColumnText('resource', "securityModule.admin.grid.resource")->setSortable()->setCustomRender($this->resourceRender)->setFilterText();
     $headerAdded = $grid->getColumn('resource')->headerPrototype;
     $headerAdded->class[] = 'center';
     $grid->addColumnText('privilege', "securityModule.admin.grid.privilege")->setSortable()->setCustomRender($this->privilegeRender)->setTruncate(15)->setFilterText();
     $headerNote = $grid->getColumn('privilege')->headerPrototype;
     $headerNote->class[] = 'center';
     $modesList = [null => null] + AclMode::getOptions();
     $grid->addColumnText('mode', "securityModule.admin.grid.mode")->setSortable()->setCustomRender($this->modeRender)->setTruncate(15)->setFilterSelect($modesList);
     $headerNote = $grid->getColumn('mode')->headerPrototype;
     $headerNote->class[] = 'center';
     $grid->addActionHref('delete', '', 'deleteRule!')->setIcon('trash')->setElementPrototype(\Nette\Utils\Html::el("a")->addAttributes(["title" => $this->tt("securityModule.admin.grid.delete")]))->setConfirm(function ($u) {
         return $this->tt("securityModule.admin.grid.rlyDeleteRule", null, ["pos" => $u]);
     });
     $grid->addActionHref('edit', '', 'updateRule')->setIcon('pencil')->setElementPrototype(\Nette\Utils\Html::el("a")->addAttributes(["title" => $this->tt("securityModule.admin.grid.update")]));
     $grid->setOperation(["delete" => $this->tt("system.common.delete")], $this->ruleGridOpsHandler);
     $grid->setFilterRenderType($this->filterRenderType);
     $grid->setExport("admin-rules " . date("Y-m-d H:i:s", time()));
 }
コード例 #2
0
ファイル: AclService.php プロジェクト: fuca/sportsclub
 private function setRules(Permission $p)
 {
     try {
         $rules = $this->rulesService->getRules();
     } catch (Exceptions\DataErrorException $e) {
         $this->logError($e->getMessage());
     }
     foreach ($rules as $r) {
         if ($r->isPermit()) {
             $p->allow($r->getRole()->getName(), $r->hasResource() ? $r->getResource() : Permission::ALL, $r->hasPrivilege() ? $r->getPrivileges() : Permission::ALL);
         } else {
             $p->deny($r->getRole()->getName(), $r->hasResource() ? $r->getResource() : Permission::ALL, $r->hasPrivilege() ? $r->getPrivileges() : Permission::ALL);
         }
     }
 }
コード例 #3
0
ファイル: Initializer.php プロジェクト: fuca/sportsclub
 public function rulesInit()
 {
     $role = $this->roleService->getRoleName("admin");
     $rule = null;
     try {
         $rule = $this->ruleService->getUniqueRule($role);
     } catch (Exceptions\NoResultException $ex) {
         $this->logger->addDebug($ex->getMessage());
     }
     if ($rule === null) {
         $this->logger->addInfo("Security module initializer - AclRules - no godlike Rule for role {$role} found. New one is gonna be created.");
         $rule = new AclRule();
         $rule->setRole($role);
         $rule->setResource(null);
         $rule->setPrivilege(null);
         $rule->setMode(\App\Model\Misc\Enum\AclMode::PERMIT);
         $this->ruleService->createRule($rule);
     }
 }