Ejemplo n.º 1
0
 /**
  * @param Form $form
  */
 protected function configure(Form $form)
 {
     $presenters = $this->administrationManager->getAdministrationPages();
     /** @var $permissions \Nette\Security\Permission */
     $permissions = $this->authorizatorFactory->getPermissionsByRoles(array($form->data->name));
     foreach ($this->scanResources() as $resource => $privileges) {
         $presenter = $this->presenterFactory->unformatPresenterClass($resource);
         $container = $form->addContainer($this->formatName($resource));
         $container->setCurrentGroup($form->addGroup(isset($presenters[$presenter . ':']) ? $presenters[$presenter . ':']['name'] : $resource));
         $val = $permissions->isAllowed($form->data->name, $resource);
         $container->addCheckbox('all', 'All')->setDefaultValue($val);
         $privilegeContainer = $container->addContainer('privileges');
         foreach ($privileges as $privilege) {
             /** @var $checkbox \Nette\Forms\Controls\Checkbox */
             $checkbox = $privilegeContainer->addCheckbox($privilege, $privilege);
             $checkbox->setDefaultValue($permissions->isAllowed($form->data->name, $resource, $privilege));
             if ($val) {
                 $checkbox->disabled = TRUE;
             }
         }
     }
     $form->setCurrentGroup();
     $form->addSaveButton('Save');
 }
Ejemplo n.º 2
0
	/**
	 * Formats presenter name from class name.
	 *
	 * @author   Jan Tvrdík
	 * @param    string
	 * @return   string
	 */
	public function unformatPresenterClass($class)
	{
		return parent::unformatPresenterClass(substr($class, strlen(__NAMESPACE__) + 1));
	}
Ejemplo n.º 3
0
 /**
  * @param $class
  * @return string
  */
 public function unformatPresenterClass($class)
 {
     if (isset($this->presentersByClass[$class])) {
         $name = $this->presentersByClass[$class];
         return $this->formatPresenterFromServiceName($name);
     } else {
         return parent::unformatPresenterClass($class);
     }
 }