diff --git a/application/controllers/admin/surveyadmin.php b/application/controllers/admin/surveyadmin.php index 3d9568e8e07..82c13a8ef6f 100644 --- a/application/controllers/admin/surveyadmin.php +++ b/application/controllers/admin/surveyadmin.php @@ -575,7 +575,7 @@ public function getSurveys_json() $dateformatdetails = getDateFormatData(Yii::app()->session['dateformat']); $oSurvey = new Survey; - if (!Permission::model()->hasGlobalPermission('surveys','read')) + if (!Permission::model()->hasGlobalPermission('superadmin','read')) $oSurvey->permission(Yii::app()->user->getId()); $aSurveys = $oSurvey->with(array('languagesettings'=>array('condition'=>'surveyls_language=language'), 'owner'))->findAll(); diff --git a/application/helpers/common_helper.php b/application/helpers/common_helper.php index 83169b85335..cfc28ee2cbc 100644 --- a/application/helpers/common_helper.php +++ b/application/helpers/common_helper.php @@ -135,7 +135,7 @@ function getSurveyList($returnarray=false, $surveyid=false) if(is_null($cached)) { $args = array('order'=>'surveyls_title'); - if (!Permission::model()->hasGlobalPermission('surveys','read')) + if (!Permission::model()->hasGlobalPermission('superadmin','read')) { $surveyidresult = Survey::model()->permission(Yii::app()->user->getId())->with('defaultlanguage')->findAll($args); } else { @@ -7589,7 +7589,7 @@ function getSerialClass($sSerial) { $aTypes = array('s' => 'string', 'a' => 'array', 'b' => 'bool', 'i' => 'int', 'd' => 'float', 'N;' => 'NULL'); $aParts = explode(':', $sSerial, 4); - return isset($aTypes[$aParts[0]]) ? $aTypes[$aParts[0]] : ( isset($aParts[2]) ? trim($aParts[2], '"') : null); + return isset($aTypes[$aParts[0]]) ? $aTypes[$aParts[0]] : trim($aParts[2], '"'); } // Closing PHP tag intentionally omitted - yes, it is okay diff --git a/application/models/Permission.php b/application/models/Permission.php index fb35e5a19d8..8b3adfc141d 100644 --- a/application/models/Permission.php +++ b/application/models/Permission.php @@ -491,6 +491,7 @@ function hasPermission($iEntityID, $sEntityName, $sPermission, $sCRUD, $iUserID= // If you own a survey you have access to the whole survey if ($iUserID==$aSurveyInfo['owner_id']) return true; } + // Check if superadmin and cache it if (!isset($aPermissionCache[0]['global'][$iUserID]['superadmin']['read_p'])) { @@ -548,8 +549,8 @@ function hasGlobalPermission($sPermission, $sCRUD, $iUserID=null) */ function hasSurveyPermission($iSurveyID, $sPermission, $sCRUD, $iUserID=null) { - return ($this->hasGlobalPermission('surveys',$sCRUD,$iUserID) || $this->hasPermission($iSurveyID, 'survey', $sPermission, $sCRUD, $iUserID)); - } + return $this->hasPermission($iSurveyID, 'survey', $sPermission, $sCRUD, $iUserID); + } /** * Returns true if a user has permission to use a certain template @@ -560,7 +561,7 @@ function hasSurveyPermission($iSurveyID, $sPermission, $sCRUD, $iUserID=null) */ function hasTemplatePermission($sTemplateName, $sCRUD='read', $iUserID=null) { - return ($this->hasGlobalPermission('templates',$sCRUD,$iUserID) || $this->hasPermission(0, 'template', $sTemplateName, $sCRUD, $iUserID)); + return $this->hasPermission(0, 'template', $sTemplateName, $sCRUD, $iUserID); } /**