public function save(Default_Model_Role $value) { $auth = Zend_Auth::getInstance(); $authAccount = $auth->getStorage()->read(); if (null != $authAccount) { if (null != $authAccount->getId()) { $user = new Default_Model_Users(); $user->find($authAccount->getId()); $data = array('id' => $value->getId(), 'idParent' => $value->getIdParent(), 'name' => $value->getName(), 'isAdmin' => $value->getIsAdmin(), 'deleted' => $value->getDeleted() != NULL ? $value->getDeleted() : 0); if (null === ($id = $value->getId())) { $data['created'] = new Zend_Db_Expr('NOW()'); $id = $this->getDbTable()->insert($data); } else { $data['modified'] = new Zend_Db_Expr('NOW()'); $this->getDbTable()->update($data, array('id = ?' => $id)); } return $id; } } }
public static function getAllResources($coreRoleId, $isAdmin = false, $canAddResourceRole = false, $roleId = null, $searchText = null) { if ($roleId == null) { $roleId = $coreRoleId; } $return = '<input type="hidden" name="roleId" value="' . $roleId . '" />'; //hidden input to send the role id //select the logged in rol resources that he has access to $model = new Default_Model_Resource(); $select = $model->getMapper()->getDbTable()->select()->from(array('r' => 'resource'), array('r.id', 'r.idGroup', 'r.description')); if (!self::isAdmin($coreRoleId)) { $select->joinLeft(array('rr' => 'resource_role'), 'r.id = rr.idResource', array('rid' => 'rr.id'))->where('rr.idRole = ?', $coreRoleId); } if ($searchText != null) { $select->where('r.description LIKE (?)', '%' . $searchText . '%'); } $select->where('NOT r.deleted')->order(array('r.idGroup ASC', 'r.id ASC')); $select->setIntegrityCheck(false); // echo $select; $result = $model->fetchAll($select); if ($result) { $var = null; foreach ($result as $value) { //BEGIN:Display resource category if (($var == NULL || $var != $value->getIdGroup()) && $value->getIdGroup() != null) { if ($var != null) { $return .= '</div>'; $return .= '</div>'; } $return .= "<div class='resourceRole'>\n\t\t\t\t\t\t\t\t\t<h3>{$value->getResourceGroup()->getName()}</h3>\n\t\t\t\t\t\t\t\t\t<div>"; } //END:Display resource category //Check if role id has access to resource,and check; $checked = ''; if (self::hasAccessbyId($roleId, $value->getId())) { $checked = 'checked '; } //If admin disable checkbox $readonly = ''; if ($canAddResourceRole == false || $roleId == $coreRoleId) { //$readonly = 'disabled="disabled"'; $isAdmin = self::isAdmin($coreRoleId) ? true : false; if ($isAdmin) { $checked = 'checked '; } } else { if ($isAdmin) { $checked = 'checked '; //$readonly = 'disabled="disabled"'; } else { //BEGIN:If parent role doesn't have the resource, disable checkbox //get parent roleId if there is any $role = new Default_Model_Role(); $role->find($roleId); if (!self::isAdmin($role->getIdParent())) { if ($role->getIdParent() != null && !self::hasAccessbyId($role->getIdParent(), $value->getId())) { //$readonly = 'disabled="disabled"'; } } //END:If parent role doesn't have the resource, disable checkbox } } $return .= '<div class="resourceName"> <input type="checkbox" class="roleResource" value="' . $value->getId() . '" name="roleResource[]" ' . $checked . $readonly . ' />' . $value->getDescription() . ' </div>'; $var = $value->getIdGroup(); } $return .= '</div>'; $return .= '</div>'; } else { $return .= 'Nu a fost gasit nici un rezultat.'; } return $return; }
public function deleteAction() { // //check if the auth user has acces to this modul // if(!Needs_Tools::hasAccess(Zend_Registry::get('user')->getRoleId(),'stergere_rol')){ // $this->_redirect('/'); // } // $id = $this->getRequest()->getParam('id'); // //check if user can delete this role (if it's his role child role) // if(!Needs_Tools::checkIfSubRole(Zend_Registry::get('user')->getRoleId(),$id)){ // $this->_redirect('/'); // } $model = new Default_Model_Role(); if ($model->find($id)) { //all sub childs goes a level up $parentId = $model->getIdParent(); $graph = new Needs_Graph($model, false, array('idParent', 'id'), 'array', true); if ($graph->moveChildren($parentId)) { //TODO:fallback if couldn't delete children } if ($model->delete()) { $this->_flashMessenger->addMessage("<div class='success canhide'><p>Rolul a fost sters cu succes.</p><a href='javascript:;'></a></div>"); } else { $this->_flashMessenger->addMessage("<div class='failure canhide'><p>S-a produs o eroare in stergerea rolului. Nu s-a efectuat nici o modificare</p><a href='javascript:;'></a></div>"); } } $this->_redirect(WEBROOT . 'role'); }