Ejemplo n.º 1
0
 /**
  * RPC Routine to delete a group of a survey .
  * Returns the id of the deleted group.
  *
  * @access public
  * @param string $sSessionKey Auth credentials
  * @param int $iSurveyID Id of the survey that the group belongs
  * @param int $iGroupID Id of the group to delete
  * @return array|int The id of the deleted group or status
  */
 public function delete_group($sSessionKey, $iSurveyID, $iGroupID)
 {
     if ($this->_checkSessionKey($sSessionKey)) {
         $iSurveyID = sanitize_int($iSurveyID);
         $iGroupID = sanitize_int($iGroupID);
         $oSurvey = Survey::model()->findByPk($iSurveyID);
         if (!isset($oSurvey)) {
             return array('status' => 'Error: Invalid survey ID');
         }
         if (hasSurveyPermission($iSurveyID, 'surveycontent', 'delete')) {
             $oGroup = Groups::model()->findByAttributes(array('gid' => $iGroupID));
             if (!isset($oGroup)) {
                 return array('status' => 'Error: Invalid group ID');
             }
             if ($oSurvey['active'] == 'Y') {
                 return array('status' => 'Error:Survey is active and not editable');
             }
             $depented_on = getGroupDepsForConditions($oGroup->sid, "all", $iGroupID, "by-targgid");
             if (isset($depented_on)) {
                 return array('status' => 'Group with depencdencies - deletion not allowed');
             }
             $iGroupsDeleted = Groups::deleteWithDependency($iGroupID, $iSurveyID);
             if ($iGroupsDeleted === 1) {
                 fixSortOrderGroups($iSurveyID);
                 return (int) $iGroupID;
             } else {
                 return array('status' => 'Group deletion failed');
             }
         } else {
             return array('status' => 'No permission');
         }
     } else {
         return array('status' => 'Invalid Session Key');
     }
 }
Ejemplo n.º 2
0
 /**
  * Action to delete a question group.
  *
  * @access public
  * @return void
  */
 public function delete($iSurveyId, $iGroupId)
 {
     $iSurveyId = sanitize_int($iSurveyId);
     if (hasSurveyPermission($iSurveyId, 'surveycontent', 'delete')) {
         LimeExpressionManager::RevertUpgradeConditionsToRelevance($iSurveyId);
         $iGroupId = sanitize_int($iGroupId);
         $clang = $this->getController()->lang;
         $iGroupsDeleted = Groups::deleteWithDependency($iGroupId, $iSurveyId);
         if ($iGroupsDeleted !== 1) {
             fixSortOrderGroups($iSurveyId);
             Yii::app()->user->setFlash('flashmessage', $clang->gT('The question group was deleted.'));
         } else {
             Yii::app()->user->setFlash('flashmessage', $clang->gT('Group could not be deleted'));
         }
         $this->getController()->redirect($this->getController()->createUrl('admin/survey/sa/view/surveyid/' . $iSurveyId));
         LimeExpressionManager::UpgradeConditionsToRelevance($iSurveyId);
     }
 }