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 }