コード例 #1
0
ファイル: RolePresenter.php プロジェクト: vsek/base
 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;
 }
コード例 #2
0
ファイル: ResourcePresenter.php プロジェクト: vsek/base
 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);
 }