protected function createComponentFormSet($name) { $form = new Form($this, $name); foreach ($this->resource->related('resource_privilege') as $resourcePrivilege) { $form->addCheckbox('privilege_' . $resourcePrivilege->privilege->id, $resourcePrivilege->privilege->name); } $form->addSubmit('send', $this->translator->translate('admin.form.set')); $form->onSuccess[] = [$this, 'submitFormSet']; $defaults = array(); foreach ($this->permissions->where('role_id = ?', $this->row['id'])->where('resource_id = ?', $this->resource['id']) as $permission) { $defaults['privilege_' . $permission['privilege_id']] = true; } $form->setDefaults($defaults); return $form; }
public function startup() { parent::startup(); if ($this->getName() != 'Admin:Sign' && !$this->user->isLoggedIn()) { $this->redirect('Sign:default'); } //nastavim prava foreach ($this->roles->getAll() as $role) { $this->acl->addRole($role['system_name']); } foreach ($this->resources->getAll() as $resource) { $this->acl->addResource($resource['system_name']); } foreach ($this->permissions->getAll() as $permission) { $this->acl->allow($permission->role->system_name, $permission->resource->system_name, $permission->privilege->system_name); } $this->acl->addRole('super_admin'); $this->acl->allow('super_admin'); //homepage a sign maji pristup vsichni $this->acl->addResource('homepage'); $this->acl->allow(\App\AdminModule\Components\Authorizator::ALL, 'homepage'); $this->acl->addResource('sign'); $this->acl->allow(\App\AdminModule\Components\Authorizator::ALL, 'sign'); //vychozi role $this->acl->addRole('guest'); //kontrola prav if ($this->getName() != 'Admin:Image' && $this->getAction() != 'ordering' && $this->getAction() != 'orderingCategory' && $this->getAction() != 'deleteImage' && $this->getAction() != 'changePassword' && $this->getAction() != 'getCity' && $this->getAction() != 'download') { if (!$this->getUser()->isAllowed($this->getNameSimple(), $this->getAction())) { $this->flashMessage($this->translator->translate('admin.login.noAccess'), 'error'); $this->redirect('Homepage:default'); } } //projedu vsek moduly a pokusim se najit presentery $presenters = array(); $vsekDir = dirname(__FILE__) . '/../../../'; $ch = opendir($vsekDir); while (($file = readdir($ch)) !== false) { if (!in_array($file, array('.', '..'))) { if (file_exists($vsekDir . $file . '/src/setting.xml')) { $xml = simplexml_load_file($vsekDir . $file . '/src/setting.xml'); if (isset($xml->presenter)) { $this->menuModules[] = array('name' => (string) $xml->presenter->name, 'resource' => (string) $xml->presenter->resource); } } } } closedir($ch); }
/** * Run the database seeds. * * @return void */ public function run() { Permission::truncate(); factory(Permission::class)->create(['name' => 'ver-usuarios', 'display_name' => 'Ver Usuários', 'description' => 'Permissão para visualizar usuários']); factory(Permission::class)->create(['name' => 'criar-usuarios', 'display_name' => 'Criar Usúarios', 'description' => 'Permissão para usuários']); factory(Permission::class)->create(['name' => 'list', 'display_name' => 'Listar usuários', 'description' => 'Permissão para Listar usuários']); factory(Permission::class)->create(['name' => 'editar-usuarios', 'display_name' => 'Editar usuários', 'description' => 'Permissão para Editar usuários']); factory(Permission::class)->create(['name' => 'atualizar-usuarios', 'display_name' => 'Atualizar usuários', 'description' => 'Permissão para Atualizar usuários']); factory(Permission::class)->create(['name' => 'excluir-usuarios', 'display_name' => 'Exluir usuários', 'description' => 'Permissão para Exluir usuários']); factory(Permission::class, 0)->create(); }
public function submitFormEdit(Form $form) { $values = $form->getValues(); $this->resource->update(array('name' => $values->name, 'system_name' => $values->system_name)); foreach ($values as $key => $val) { if (\Nette\Utils\Strings::startsWith($key, 'privilege_')) { $id = explode('_', $key); $resourcePrivilege = $this->resource->related('resource_privilege'); if ($val) { if (!$resourcePrivilege->where('privilege_id = ?', $id[1])->fetch()) { $resourcePrivilege->insert(array('privilege_id' => (int) $id[1])); } } else { if ($resourcePrivilege->where('privilege_id = ?', $id[1])->fetch()) { $resourcePrivilege->where('privilege_id = ?', $id[1])->delete(); $this->permissions->where('resource_id = ?', $this->resource['id'])->where('privilege_id = ?', $id[1])->delete(); } } } } $this->flashMessage($this->translator->translate('admin.form.editSuccess')); $this->redirect('edit', $this->resource->id); }