public static function hasAccessbyId($roleId, $resourceId) { $result = false; if ($roleId == 'guest') { return false; } //find resource and role connection, if there is any if (self::isAdmin($roleId)) { return true; } $resourceRole = new Default_Model_ResourceRole(); $select3 = $resourceRole->getMapper()->getDbTable()->select()->where('idResource = ?', $resourceId)->where('idRole = ?', $roleId); $resourceRole->fetchRow($select3); if ($resourceRole->getId() != NULL) { $result = true; } return $result; }
public function saveResourceAction() { //check if the auth user has acces to this modul // if(!Needs_Tools::hasAccess($myUser = Zend_Registry::get('user')->getRoleId(),'setare_drept_rol')){ // die('No access!'); // } $resourceId = $this->getRequest()->getParam('resourceId'); $roleId = $this->getRequest()->getParam('roleId'); $actions = $this->getRequest()->getParam('actions'); $return = 'Error occured'; //BEGIN:save or delete if ($actions == 'add') { $modelRR = new Default_Model_ResourceRole(); $select3 = $modelRR->getMapper()->getDbTable()->select()->where('idResource = ?', $resourceId)->where('idRole = ?', $roleId); $modelRR->fetchRow($select3); if ($modelRR->getId() == NULL) { $model = new Default_Model_ResourceRole(); $model->setIdResource($resourceId); $model->setIdRole($roleId); if ($model->save()) { $return = 'Successfully added'; } } else { $return = 'Already in database'; } } elseif ($actions == 'remove') { $model = new Default_Model_ResourceRole(); $select3 = $model->getMapper()->getDbTable()->select()->where('idResource = ?', $resourceId)->where('idRole = ?', $roleId); $model->fetchRow($select3); if ($model->getId() != NULL) { if ($model->delete()) { //remove the resource from all child elements $role = new Default_Model_Role(); $role->find($roleId); $graph = new Needs_Graph($role, false, array('idParent', 'id'), 'array'); $childRoles = $graph->getTree(); foreach ($childRoles as $value) { $condition = array('idRole = ?' => $value['id'], 'idResource = ?' => $resourceId); $this->db->delete('resource_role', $condition); } $return = 'Successfully deleted'; } } } echo Zend_Json_Encoder::encode($return); //END:save or delete }
public static function hasAccess($roleId, $resourceConst, $displayNone = NULL) { //if isAdmin no need for futher verification if (self::isAdmin($roleId)) { if ($displayNone) { return ''; } return true; } //find resource $result = false; $resourceModel = new Default_Model_Resource(); $select2 = $resourceModel->getMapper()->getDbTable()->select()->from(array('resource'), array('id'))->where('resource = ?', $resourceConst); $resourceModel->fetchRow($select2); if ($resourceModel->getId() != null) { //find resource and role connection, if there is any $resourceRole = new Default_Model_ResourceRole(); $select3 = $resourceRole->getMapper()->getDbTable()->select()->where('idResource = ?', $resourceModel->getId())->where('idRole = ?', $roleId); $resourceRole->fetchRow($select3); if ($resourceRole->getId() != NULL) { $result = true; } } if ($displayNone && !$result) { $result = ' style="display:none"'; } elseif ($displayNone) { return ''; } return $result; }
public function save(Default_Model_ResourceRole $value) { $data = array('id' => $value->getId(), 'idRole' => $value->getIdRole(), 'idResource' => $value->getIdResource(), 'created' => $value->getCreated()); if (null === ($id = $value->getId())) { $data['created'] = new Zend_Db_Expr('NOW()'); $id = $this->getDbTable()->insert($data); } return $id; }