/** * Cria um papel para o cargo. * Cria uma instância de Authorization\Entity\Role com o nome time(). Cada cargo deve possuir um papel. Todos os * papéis criados a partir de cargos são definidas por time(). */ protected function initRole() { if (!isset($this->role)) { $this->role = new Role(); $this->role->setRoleName(time()); } }
/** * * 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)); }