diff --git a/admin/clientquestionnaire.php b/admin/clientquestionnaire.php index 4378dd24..3bf45b3c 100644 --- a/admin/clientquestionnaire.php +++ b/admin/clientquestionnaire.php @@ -49,6 +49,8 @@ require ("auth-admin.php"); */ include ("../functions/functions.xhtml.php"); +$msg = ""; + /** * Return if an client has already been assigned to this questionnaire * @@ -78,78 +80,125 @@ function vq($client_id,$questionnaire_id) * * @param int $client_id Client id * @param int $questionnaire_id Questionnaire id + * @param int $lime_sid Lime survey ID + * @param int $uid Lime user ID * */ -function vqi($client_id,$questionnaire_id) +function vqi($client_id,$questionnaire_id,$lime_sid,$uid) { global $db; + + $db->StartTrans(); $sql = "INSERT INTO client_questionnaire (client_id,questionnaire_id) VALUES('$client_id','$questionnaire_id')"; $db->Execute($sql); -} - - -/** - * Unassign an client from a questionnaire - * - * @param int $client_id Client id - * @param int $questionnaire_id Questionnaire id - * - */ -function vqd($client_id,$questionnaire_id) -{ - global $db; - - $sql = "DELETE FROM - client_questionnaire - WHERE client_id = '$client_id' and questionnaire_id = '$questionnaire_id'"; - - $db->Execute($sql); + + /* Add client questionnaire permissions to view Lime results + statistics and quotas, //preserve superadmin permissions */ + if ($uid != 1 && empty($db->GetAll("SELECT * FROM " . LIME_PREFIX . "survey_permissions WHERE `sid` = '$lime_sid' AND `uid` = '$uid'"))) + { + $sql = "INSERT INTO " . LIME_PREFIX . "survey_permissions (`sid`,`uid`,`permission`,`create_p`,`read_p`,`update_p`,`delete_p`,`import_p`,`export_p`) + VALUES ($lime_sid,$uid,'survey',0,1,0,0,0,0),($lime_sid,$uid,'statistics',0,1,0,0,0,0),($lime_sid,$uid,'quotas',0,1,0,0,0,0)"; + $db->Execute($sql); + } + + $db->CompleteTrans(); } if (isset($_POST['submit'])) { $db->StartTrans(); - - $sql = "DELETE - FROM client_questionnaire - WHERE questionnaire_id IN ( - SELECT questionnaire_id - FROM questionnaire - WHERE enabled = 1)"; - + + /* Unassign a client from a questionnaire , remove survey_permissions*/ + $sql = "DELETE FROM client_questionnaire + WHERE questionnaire_id IN ( SELECT questionnaire_id FROM questionnaire WHERE enabled = 1)"; $db->Execute($sql); +/*Currently disabled -> need to decide how to manage permissions set earlier*/ +/* $questionnaires = $db->GetAll("SELECT lime_sid FROM questionnaire WHERE enabled = 1"); + + $clients = $db->GetAll("SELECT uid FROM client, " . LIME_PREFIX . "users WHERE `users_name` = `username`"); + + foreach($questionnaires as $q){ + foreach($clients as $v){ + $sql = "DELETE FROM " . LIME_PREFIX . "survey_permissions WHERE `uid` = {$v['uid']} AND `sid`={$q['lime_sid']} AND `uid` != 1"; + $db->Execute($sql); + } + } */ + /* - end - */ foreach ($_POST as $g => $v) { $a = explode("_",$g); if ($a[0] == "cb") - vqi($a[2],$a[1]); + vqi($a[2],$a[1],$a[3],$a[4]); } $db->CompleteTrans(); } +/* delete client from quexs and lime tables*/ //requires data-toggle-confirmation to finalize +if (isset($_POST['delete']) && isset($_POST['uid'])) +{ + $client_id = intval($_POST['delete']); + $uid = intval($_POST['uid']); + $uname = $_POST['uname']; + + global $db; + + $db->StartTrans(); + + if ($uid !=1){ //double protect superadmin from being deleted + + $sql = "DELETE FROM " . LIME_PREFIX . "templates_rights WHERE `uid` = '$uid' AND `uid` != 1"; + $db->Execute($sql); + + $sql = "DELETE FROM " . LIME_PREFIX . "survey_permissions WHERE `uid` = '$uid' AND `uid` != 1"; + $db->Execute($sql); + + $sql = "DELETE FROM " . LIME_PREFIX . "user_in_groups WHERE `uid` = '$uid' AND `uid` != 1"; + $db->Execute($sql); + + $sql = "DELETE FROM " . LIME_PREFIX . "users WHERE `uid` = '$uid' AND `uid` != 1"; + $db->Execute($sql); + + } -$sql = "SELECT questionnaire_id,description + $sql = "DELETE FROM `client_questionnaire` WHERE `client_id` = '$client_id' "; + $db->Execute($sql); + + $sql = "DELETE FROM `client` WHERE `client_id` = '$client_id'"; + $db->Execute($sql); + + $db->CompleteTrans(); + + if ($db->CompleteTrans()) $msg = "
". T_("Client with username $uname deleted") . "
"; + else $msg = "". T_("ERROR deleting client with username $uname") . "
"; + + unset($_POST['delete'], $_POST['uid'], $_POST['uname'], $client_id, $username, $uid); +} + + +$sql = "SELECT questionnaire_id,description, lime_sid FROM questionnaire WHERE enabled = 1 ORDER by questionnaire_id ASC"; $questionnaires = $db->GetAll($sql); -$sql = "SELECT client_id, CONCAT(firstName,' ', lastName ) as description, username - FROM client +$sql = "SELECT client_id, CONCAT(firstName,' ', lastName ) as description, username, uid + FROM client, " . LIME_PREFIX . "users + WHERE `users_name` = `username` ORDER by client_id ASC"; $clients = $db->GetAll($sql); -xhtml_head(T_("Assign clients to questionnaires"),true,array("../include/bootstrap/css/bootstrap.min.css","../include/iCheck/skins/square/blue.css","../css/custom.css"),array("../include/jquery/jquery.min.js","../include/iCheck/icheck.min.js")); +xhtml_head(T_("Clients and questionnaires"),true,array("../include/bootstrap/css/bootstrap.min.css","../include/font-awesome/css/font-awesome.css","../include/iCheck/skins/square/blue.css","../css/custom.css"),array("../include/jquery/jquery.min.js","../include/iCheck/icheck.min.js")); + +if (!empty($msg)) print $msg; ?> @@ -243,7 +292,9 @@ print ""; +print ""; ?>