From 7614d9ad102e7c8632decc9524a8aea9492b62cb Mon Sep 17 00:00:00 2001 From: Shitiz Garg Date: Thu, 24 Nov 2011 19:33:12 +0000 Subject: [PATCH] Commit for GCI Task #7133233 Ported Survey Permissions @Note : Previous commit by mot also included GCI Task #7140234 git-svn-id: file:///Users/Shitiz/Downloads/lssvn/source/limesurvey_yii@11478 b72ed6b6-b9f8-46b5-92b4-906544132732 --- .../controllers/admin/surveypermission.php | 387 +++++++++--------- application/helpers/common_helper.php | 36 +- application/models/Survey_permissions.php | 103 ++++- scripts/admin/surveysecurity.js | 20 +- 4 files changed, 307 insertions(+), 239 deletions(-) diff --git a/application/controllers/admin/surveypermission.php b/application/controllers/admin/surveypermission.php index 78a974e8b47..270f170ba5e 100644 --- a/application/controllers/admin/surveypermission.php +++ b/application/controllers/admin/surveypermission.php @@ -21,18 +21,29 @@ * @version $Id$ * @access public */ -class surveypermission extends Survey_Common_Controller { - - - /** - * surveypermission::__construct() - * Constructor - * @return - */ - function __construct() - { - parent::__construct(); - } +class surveypermission extends Survey_Common_Action { + /** + * Routes to current subview + * + * @access public + * @param string $sa + * @return + */ + public function run($sa) + { + if ($sa == 'view') + $this->route('view', array('surveyid')); + elseif ($sa == 'addusergroup') + $this->route('addusergroup', array('surveyid')); + elseif ($sa == 'adduser') + $this->route('adduser', array('surveyid')); + elseif ($sa == 'set') + $this->route('set', array('surveyid')); + elseif ($sa == 'delete') + $this->route('delete', array('surveyid')); + elseif ($sa == 'surveyright') + $this->route('surveyright', array('surveyid')); + } /** * surveypermission::view() @@ -43,40 +54,38 @@ function __construct() function view($surveyid) { $surveyid = sanitize_int($surveyid); - $css_admin_includes[] = $this->config->item('styleurl')."admin/default/superfish.css"; - $this->config->set_item("css_admin_includes", $css_admin_includes); + $css_admin_includes[] = Yii::app()->getConfig('styleurl')."admin/default/superfish.css"; + Yii::app()->setConfig("css_admin_includes", $css_admin_includes); - self::_getAdminHeader(); - self::_showadminmenu($surveyid); - self::_surveybar($surveyid,NULL); - self::_surveysummary($surveyid,'surveysecurity'); + $this->getController()->_getAdminHeader(); + $this->getController()->_showadminmenu($surveyid); + $this->_surveybar($surveyid,NULL); + $this->_surveysummary($surveyid,'surveysecurity'); - $clang = $this->limesurvey_lang; - $this->load->helper('database'); - $imageurl = $this->config->item('imageurl'); + $clang = Yii::app()->lang; + $imageurl = Yii::app()->getConfig('imageurl'); if(bHasSurveyPermission($surveyid,'survey','read')) { - $this->load->model('survey_permissions_model'); - $aBaseSurveyPermissions=$this->survey_permissions_model->aGetBaseSurveyPermissions(); + $aBaseSurveyPermissions=Survey_permissions::getBasePermissions(); - self::_js_admin_includes(base_url().'scripts/jquery/jquery.tablesorter.min.js'); - self::_js_admin_includes(base_url().'scripts/admin/surveysecurity.js'); + $this->getController()->_js_admin_includes(Yii::app()->baseUrl.'/scripts/jquery/jquery.tablesorter.min.js'); + $this->getController()->_js_admin_includes(Yii::app()->baseUrl.'/scripts/admin/surveysecurity.js'); - $query2 = "SELECT p.sid, p.uid, u.users_name, u.full_name FROM ".$this->db->dbprefix."survey_permissions AS p INNER JOIN ".$this->db->dbprefix."users AS u ON p.uid = u.uid - WHERE p.sid = {$surveyid} AND u.uid != ".$this->session->userdata('loginID') ." + $query2 = "SELECT p.sid, p.uid, u.users_name, u.full_name FROM {{survey_permissions}} AS p INNER JOIN {{users}} AS u ON p.uid = u.uid + WHERE p.sid = {$surveyid} AND u.uid != ".Yii::app()->session['loginID'] ." GROUP BY p.sid, p.uid, u.users_name, u.full_name ORDER BY u.users_name"; - $result2 = db_execute_assoc($query2); //Checked + $result2 = Yii::app()->db->createCommand($query2)->query(); //Checked $surveysecurity ="
".$clang->gT("Survey permissions")."
\n" - . "" - . "\n" - . "\n" - . "\n" - . "\n" - . "\n"; + . "
".$clang->gT("Action")."".$clang->gT("Username")."".$clang->gT("User Group")."".$clang->gT("Full name")."
" + . "\n" + . "\n" + . "\n" + . "\n" + . "\n"; foreach ($aBaseSurveyPermissions as $sPermission=>$aSubPermissions ) { $surveysecurity.="\n"; @@ -85,26 +94,24 @@ function view($surveyid) // Foot first - if ($this->config->item('usercontrolSameGroupPolicy') == true) + if (Yii::app()->getConfig('usercontrolSameGroupPolicy') == true) { - $authorizedGroupsList=getusergrouplist(NULL,'simplegidarray'); + $authorizedGroupsList = getusergrouplist(NULL,'simplegidarray'); } $surveysecurity .= "\n"; - if($result2->num_rows() > 0) + if($result2->getRowCount() > 0) { - // output users $row = 0; - foreach ($result2->result_array() as $PermissionRow) + foreach ($result2->readAll() as $PermissionRow) { - - $query3 = "SELECT a.ugid FROM ".$this->db->dbprefix."user_in_groups AS a RIGHT OUTER JOIN ".$this->db->dbprefix."users AS b ON a.uid = b.uid WHERE b.uid = ".$PermissionRow['uid']; - $result3 = db_execute_assoc($query3); //Checked - foreach ($result3->result_array() as $resul3row) + $query3 = "SELECT a.ugid FROM {{user_in_groups}} AS a RIGHT OUTER JOIN {{users}} AS b ON a.uid = b.uid WHERE b.uid = ".$PermissionRow['uid']; + $result3 = Yii::app()->db->createCommand($query3)->query(); //Checked + foreach ($result3->readAll() as $resul3row) { - if ($this->config->item('usercontrolSameGroupPolicy') == false || + if (Yii::app()->getConfig('usercontrolSameGroupPolicy') == false || in_array($resul3row['ugid'],$authorizedGroupsList)) { $group_ids[] = $resul3row['ugid']; @@ -116,10 +123,10 @@ function view($surveyid) $group_ids_query = implode(" OR ugid=", $group_ids); unset($group_ids); - $query4 = "SELECT name FROM ".$this->db->dbprefix."user_groups WHERE ugid = ".$group_ids_query; - $result4 = db_execute_assoc($query4); //Checked + $query4 = "SELECT name FROM {{user_groups}} WHERE ugid = ".$group_ids_query; + $result4 = Yii::app()->db->createCommand($query4)->query(); //Checked - foreach ($result4->result_array() as $resul4row) + foreach ($result4->readAll() as $resul4row) { $group_names[] = $resul4row['name']; } @@ -130,13 +137,13 @@ function view($surveyid) $surveysecurity .= "\n"; $surveysecurity .= "\n" . "
".$clang->gT("Action")."".$clang->gT("Username")."".$clang->gT("User Group")."".$clang->gT("Full name")."\"<span".$aSubPermissions['title']."
".$aSubPermissions['description']."\" />
\n"; - $surveysecurity .= "
" + $surveysecurity .= "" ."" ."" ."" ."" ."
\n"; - $surveysecurity .= "
" + $surveysecurity .= "" ."" ."" ."" @@ -196,14 +203,14 @@ function view($surveyid) $surveysecurity .= "
\n" - . "