예제 #1
0
파일: AclRole.php 프로젝트: popphp/pop-acl
 /**
  * Set the parent role
  *
  * @param  AclRole $parent
  * @return AclRole
  */
 public function setParent(AclRole $parent)
 {
     if ($parent->getName() !== $this->getName()) {
         $this->parent = $parent;
         $this->parent->addChild($this);
     }
     return $this;
 }
예제 #2
0
 public function indexAction()
 {
     $this->_addHeadTitle("Permissions");
     $this->view->permissions = AclPermission::findAll();
     $this->view->resources = AclResource::findAll();
     $this->view->roles = AclRole::findAll();
 }
예제 #3
0
파일: AclRole.php 프로젝트: edderrd/Aerocal
 public static function create($params)
 {
     $aclRole = new AclRole();
     $aclRole->name = $params['name'];
     $aclRole->description = $params['description'];
     $aclRole->save();
     $aclRole->refresh();
     if (!empty($params['resources'])) {
         $resources = is_array($params['resources']) ? $params['resources'] : array($params['resources']);
         foreach ($resources as $resource) {
             $permission = new AclPermission();
             $permission->resource_id = $resource;
             $permission->role_id = $aclRole->id;
             $permission->save();
         }
     }
     return $aclRole->id;
 }
예제 #4
0
파일: Acl.php 프로젝트: secretgspot/Aerocal
 /**
  * Automatically setup roles, resources and setup permissions by
  * given user
  * @param User $user
  */
 public function __construct($user)
 {
     if (!$user) {
         throw new Exception("There is a error on Roles and permissions");
     }
     $this->user = $user;
     $this->isAdmin = $user['AclRole']['name'] == "administrator" ? true : false;
     $this->_addRoles(AclRole::findAll());
     $this->_addResources(AclResource::findAll());
     $this->_addPermissions();
 }
예제 #5
0
 public function editAction()
 {
     $id = $this->_request->getParam("id");
     $data = User::findById($id);
     $userAircrafts = App_Utils::toList($data['Aircraft'], "id", "id");
     $form = new Form_UserEdit();
     $form->role_id->addMultiOptions(App_Utils::toList(AclRole::findAll(), 'id', 'name'));
     $form->aircraft->setMultiOptions(App_Utils::toList($data['Aircraft'], 'id', 'name'));
     $form->aircraft_available->setMultiOptions(App_Utils::toList(Aircraft::findAll(array('exclude' => $userAircrafts)), 'id', 'name'));
     $form->role_id->setValue($data['role_id']);
     $form->user_id->setValue($id);
     $form->populate($data);
     $options = array('title' => "Edit User", 'url' => "/user/edit/format/json/subaction/submit", 'button' => "Edit", 'success' => array("button" => array("title" => "Close", "action" => "close"), "redirect" => "/user/list", "message" => "User {$form->first_name->getValue()} {$form->last_name->getValue()} modified correctly"), 'model' => array("class" => "User", "method" => "edit"));
     $this->ajaxFormProcessor($form, $options);
 }
예제 #6
0
 public function editroleAction()
 {
     $id = $this->_request->getParam("id");
     $data = AclRole::findById($id);
     $roleResources = App_Utils::toList($data['AclPermission']['AclResource'], "id", "description");
     $form = new Form_AclRoleEdit();
     $form->description->setValue($data['description']);
     $form->resources->setMultiOptions($roleResources);
     $form->resources_available->setMultiOptions(App_Utils::toList(AclResource::findAll(array('exclude' => array_keys($roleResources))), 'id', 'description'));
     $form->name->setValue($data['name']);
     $form->aclrole_id->setValue($id);
     $form->populate($data);
     $options = array('title' => "Edit role", 'url' => "/acl/edit_role/format/json/subaction/submit", 'button' => "Edit", 'success' => array("button" => array("title" => "Close", "action" => "close"), "redirect" => "/acl/index", "message" => "Role {$form->name->getValue} modified correctly"), 'model' => array("class" => "AclRole", "method" => "edit"));
     $this->ajaxFormProcessor($form, $options);
 }
예제 #7
0
파일: Acl.php 프로젝트: edderrd/Aerocal
 /**
  * Automatically setup roles, resources and setup permissions by
  * given user
  * @param User $user
  */
 public function __construct($user)
 {
     if (!$user) {
         throw new Exception("There is a error on Roles and permissions");
     }
     $config = new Zend_Config_Ini(APPLICATION_PATH . "/configs/application.ini", APPLICATION_ENV);
     $this->_defaultAction = $config->app->defaultAction;
     $this->user = $user;
     $this->isAdmin = $user['AclRole']['name'] == "administrator" ? true : false;
     $this->_addRoles(AclRole::findAll());
     $this->_addResources(AclResource::findAll());
     $this->_addPermissions();
 }
예제 #8
0
 /**
  * jsonSerialize
  *
  * @return \stdClass
  */
 public function jsonSerialize()
 {
     $obj = parent::jsonSerialize();
     $obj->namespace = $this->getNamespace();
     $obj->isGuestRole = $this->isGuestRole();
     $obj->isSuperAdminRole = $this->isSuperAdminRole();
     return $obj;
 }