From cc9a41608659dd76a40a35cfdcbf32aeaee9314b Mon Sep 17 00:00:00 2001 From: Aparup Banerjee Date: Mon, 7 Nov 2011 14:21:40 +0800 Subject: [PATCH 1/2] MDL-28670 webservice : added dimming of service name in security keys page if webservice is disabled or not on authorised list to access webservice. --- user/managetoken.php | 8 +++++++- webservice/lib.php | 4 ++-- webservice/renderer.php | 3 +++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/user/managetoken.php b/user/managetoken.php index 46cb3330173df..58ac0fa210497 100644 --- a/user/managetoken.php +++ b/user/managetoken.php @@ -66,7 +66,13 @@ if (empty($resetconfirmation)) { $webservice->generate_user_ws_tokens($USER->id); //generate all token that need to be generated $tokens = $webservice->get_user_ws_tokens($USER->id); - $webservicetokenboxhtml = $wsrenderer->user_webservice_tokens_box($tokens, $USER->id, + foreach ($tokens as $token) { + $authlist = $webservice->get_ws_authorised_user($token->wsid, $USER->id); + if(empty($authlist) && $token->restrictedusers) { + $token->enabled = false; + } + } + $webservicetokenboxhtml = $wsrenderer->user_webservice_tokens_box($tokens, $USER->id, $CFG->enablewsdocumentation); //display the box for web service token } } diff --git a/webservice/lib.php b/webservice/lib.php index 679ba3610f7d1..188007dc8e06d 100644 --- a/webservice/lib.php +++ b/webservice/lib.php @@ -165,7 +165,7 @@ public function generate_user_ws_tokens($userid) { } /** - * Return all ws user token + * Return all ws user token with ws enabled/disabled and ws restricted users mode. * @param integer $userid * @return array of token */ @@ -173,7 +173,7 @@ public function get_user_ws_tokens($userid) { global $DB; //here retrieve token list (including linked users firstname/lastname and linked services name) $sql = "SELECT - t.id, t.creatorid, t.token, u.firstname, u.lastname, s.name, t.validuntil + t.id, t.creatorid, t.token, u.firstname, u.lastname, s.id as wsid, s.name, s.enabled, s.restrictedusers, t.validuntil FROM {external_tokens} t, {user} u, {external_services} s WHERE diff --git a/webservice/renderer.php b/webservice/renderer.php index b6e32464b47d0..d3579934cebef 100644 --- a/webservice/renderer.php +++ b/webservice/renderer.php @@ -320,6 +320,9 @@ public function user_webservice_tokens_box($tokens, $userid, $documentation = fa $validuntil = date("F j, Y"); //TODO: language support (look for moodle function) } + if (!$token->enabled) { //that is the (1 token-1ws) related ws is not enabled. + $token->name = ''.$token->name.''; + } $row = array($token->token, $token->name, $validuntil, $creatoratag, $reset); if ($documentation) { From bf8ab84950d3febba825fedc7bbebba8bab55766 Mon Sep 17 00:00:00 2001 From: Aparup Banerjee Date: Mon, 14 Nov 2011 11:25:36 +0800 Subject: [PATCH 2/2] MDL-28670 webservice : (review) changes improving performance --- user/managetoken.php | 8 +++++--- webservice/renderer.php | 5 +++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/user/managetoken.php b/user/managetoken.php index 58ac0fa210497..1c62bd901f97d 100644 --- a/user/managetoken.php +++ b/user/managetoken.php @@ -67,9 +67,11 @@ $webservice->generate_user_ws_tokens($USER->id); //generate all token that need to be generated $tokens = $webservice->get_user_ws_tokens($USER->id); foreach ($tokens as $token) { - $authlist = $webservice->get_ws_authorised_user($token->wsid, $USER->id); - if(empty($authlist) && $token->restrictedusers) { - $token->enabled = false; + if ($token->restrictedusers) { + $authlist = $webservice->get_ws_authorised_user($token->wsid, $USER->id); + if (empty($authlist)) { + $token->enabled = false; + } } } $webservicetokenboxhtml = $wsrenderer->user_webservice_tokens_box($tokens, $USER->id, diff --git a/webservice/renderer.php b/webservice/renderer.php index d3579934cebef..37b993561ff46 100644 --- a/webservice/renderer.php +++ b/webservice/renderer.php @@ -320,10 +320,11 @@ public function user_webservice_tokens_box($tokens, $userid, $documentation = fa $validuntil = date("F j, Y"); //TODO: language support (look for moodle function) } + $tokenname = $token->name; if (!$token->enabled) { //that is the (1 token-1ws) related ws is not enabled. - $token->name = ''.$token->name.''; + $tokenname = ''.$token->name.''; } - $row = array($token->token, $token->name, $validuntil, $creatoratag, $reset); + $row = array($token->token, $tokenname, $validuntil, $creatoratag, $reset); if ($documentation) { $doclink = new moodle_url('/webservice/wsdoc.php',