protected function createGrid()
 {
     $grid = $this->createPreparedGrid();
     $grid->setModel($this->getModel());
     $grid->addColumnNumber('id', 'ID')->setSortable()->setFilterNumber();
     $grid->addColumnText('username', 'Přihlašovací jméno')->setSortable()->setDefaultSort('asc')->setFilterText();
     $grid->addColumnText('name', 'Jméno')->setSortable()->setFilterText();
     $grid->addColumnText('surname', 'Příjmení')->setSortable()->setFilterText();
     $grid->addColumnText('email', 'Email')->setCustomRender(function ($row) {
         if (Strings::length($row->email) <= 0) {
             return '';
         }
         return Html::el('a')->setText($row->email)->href('mailto:' . $row->email);
     })->setSortable()->setFilterText()->setColumn('user.email');
     $section = $grid->addColumnText('section', 'Sekce');
     $this->helpers->setupAsMultirecord($section, function ($row) {
         $selection = $this->sectionFacade->all();
         $this->userFilter->filterId($selection, $row->id, ':user_has_section');
         $selection->select("section.id,section.name");
         return $selection->fetchPairs('id', 'name');
     });
     $role = $grid->addColumnText('role', 'Role');
     $this->helpers->setupAsMultirecord($role, function ($row) {
         $selection = $this->roleFacade->all();
         $this->userFilter->filterId($selection, $row->id, ':user_has_role');
         $selection->select("role.code,role.name");
         return $selection->fetchPairs('code', 'name');
     });
     $this->helpers->addEditAction($grid);
     $this->helpers->addDeleteEvent($grid, $this->deleteRow, function ($row) {
         return $row->surname . ' ' . $row->name;
     });
     return $grid;
 }
 /**
  * @param string $role
  * @return boolean
  */
 protected function findIsSuperRole($role)
 {
     $context = $this->roleFacade->all();
     $roleRecord = $this->roleFilter->filterId($context, $role)->select('super')->fetch();
     if (!$roleRecord) {
         return false;
     }
     return (bool) $roleRecord->super;
 }
Exemple #3
0
 private function setRoles(RoleFacade $roleFacade)
 {
     try {
         $this->roles = $roleFacade->findAll();
         foreach ($this->roles->items as $role) {
             if ($role->parent) {
                 $this->acl->addRole($role->name, $role->parent);
             } else {
                 $this->acl->addRole($role->name);
             }
         }
     } catch (EntitiesNotFoundException $ex) {
         \Tracy\Debugger::log($ex);
     }
 }
 /**
  * Kontrola - uživatel musí mít sekci, v případě že není superadmin
  * @param \Nette\Application\UI\Form $form
  */
 private function checkSectionBindins(Form $form)
 {
     $sections = $form['elections']['section']->getValue();
     if (count($sections)) {
         return;
     }
     $roles = $form['elections']['role']->getValue();
     $record = $this->roleFacade->all()->where('super=1 AND code', $roles)->fetch();
     if ($record) {
         return;
     }
     $form->addError('Uživatel, který není superadmin, musí mít zvolenu sekci');
 }
 /**
  * @param int $id
  */
 public function delete($id)
 {
     $this->roleFacade->delete($id);
 }
 /**
  * @param $resource
  * @param $action
  */
 public function deleteRole($resource, $action)
 {
     $this->roleFacade->deleteResource($this->id, $resource, $action);
 }
 /**
  * @param code $primary
  * @return \Nette\Database\Table\Selection
  */
 private function getRoleData($primary)
 {
     return $this->roleFilter->filterId($this->roleFacade->all(), $primary);
 }
 /**
  * @param string $role
  * @return array
  */
 protected function findPermissions($role)
 {
     $resources = $this->roleFacade->findResources($role);
     return $this->roleHelper->toArray($resources);
 }
 /**
  * @return array
  */
 private function getItems()
 {
     return $this->roleFacade->all()->fetchPairs('code', 'name');
 }
 private function getRoleName($id)
 {
     return $this->roleFilter->filterId($this->roleFacade->all(), $id)->fetch()->name;
 }