diff --git a/user/managetoken.php b/user/managetoken.php index 46cb3330173df..1c62bd901f97d 100644 --- a/user/managetoken.php +++ b/user/managetoken.php @@ -66,7 +66,15 @@ 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) { + 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, $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..37b993561ff46 100644 --- a/webservice/renderer.php +++ b/webservice/renderer.php @@ -320,7 +320,11 @@ public function user_webservice_tokens_box($tokens, $userid, $documentation = fa $validuntil = date("F j, Y"); //TODO: language support (look for moodle function) } - $row = array($token->token, $token->name, $validuntil, $creatoratag, $reset); + $tokenname = $token->name; + if (!$token->enabled) { //that is the (1 token-1ws) related ws is not enabled. + $tokenname = ''.$token->name.''; + } + $row = array($token->token, $tokenname, $validuntil, $creatoratag, $reset); if ($documentation) { $doclink = new moodle_url('/webservice/wsdoc.php',