コード例 #1
0
ファイル: AjaxController.php プロジェクト: valizr/MMA
 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
 }