/**
  * 
  * Done
  * @return ViewModel
  */
 public function createAction()
 {
     $request = $this->getRequest();
     $entityManager = $this->getEntityManager();
     $roles = $entityManager->getRepository('Authorization\\Entity\\Role')->findAll();
     $formRoles = [];
     foreach ($roles as $role) {
         $formRoles[$role->getRoleId()] = $role->getRoleName();
     }
     $roleForm = new RoleForm($formRoles);
     if ($request->isPost()) {
         $data = $request->getPost();
         $roleForm->setInputFilter(new RoleFilter());
         $roleForm->setData($data);
         if ($roleForm->isValid()) {
             $data = $roleForm->getData();
             $role = new EntityRole();
             $role->setRoleName($data['role_name']);
             $parents = new ArrayCollection();
             foreach ($data['role_parent'] as $parentRoleId) {
                 $parents->add($entityManager->getReference('Authorization\\Entity\\Role', $parentRoleId));
             }
             $role->addParents($parents);
             try {
                 $entityManager->persist($role);
                 $entityManager->flush();
                 $this->redirect()->toRoute('authorization/role', array('action' => 'index'));
             } catch (Exception $ex) {
                 return new ViewModel(array('message' => $ex->getCode() . ': ' . $ex->getMessage()));
             }
         }
     }
     return new ViewModel(array('roleForm' => $roleForm));
 }
Example #2
0
 public function getRoleIds()
 {
     $rids = [];
     if (isset($this->role)) {
         $parentRoles = $this->role->getParents()->toArray();
         foreach ($parentRoles as $r) {
             if (!is_numeric($r->getRoleName())) {
                 $rids[] = $r->getRoleId();
             }
         }
     }
     return $rids;
 }
Example #3
0
 /**
  * Remove role
  *
  * @param Role $role
  */
 public function removeRole(Role $role)
 {
     $role->removeUser($this);
     $this->role->removeElement($role);
     return $this;
 }