Added additional action handlers
This commit is contained in:
parent
44a4729bab
commit
7a0a20fcdc
96
lib.php
96
lib.php
@ -24,6 +24,8 @@
|
|||||||
|
|
||||||
defined("MOODLE_INTERNAL") || die();
|
defined("MOODLE_INTERNAL") || die();
|
||||||
|
|
||||||
|
require_once(__DIR__ . "/locallib.php");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* It checks the ability to activate the token and produces it.
|
* It checks the ability to activate the token and produces it.
|
||||||
*
|
*
|
||||||
@ -37,8 +39,7 @@ function tool_managertokens_activate_token($token = "") {
|
|||||||
$selecttimelimited = "timelimited = 0 OR (timecreated + timelimited) > " . time();
|
$selecttimelimited = "timelimited = 0 OR (timecreated + timelimited) > " . time();
|
||||||
$select = "enabled = 1 AND token = '$token' AND ($selectlimited) AND ($selecttimelimited)";
|
$select = "enabled = 1 AND token = '$token' AND ($selectlimited) AND ($selecttimelimited)";
|
||||||
if ($token = $DB->get_record_select("tool_managertokens_tokens", $select, null, "*", IGNORE_MISSING)) {
|
if ($token = $DB->get_record_select("tool_managertokens_tokens", $select, null, "*", IGNORE_MISSING)) {
|
||||||
$token = tool_managertokens_standardization_record($token);
|
$token->scope = intval($token->scope) + 1;
|
||||||
$token->scope = $token->scope + 1;
|
|
||||||
$token->timelastuse = time();
|
$token->timelastuse = time();
|
||||||
$DB->update_record("tool_managertokens_tokens", $token, false);
|
$DB->update_record("tool_managertokens_tokens", $token, false);
|
||||||
}
|
}
|
||||||
@ -67,11 +68,11 @@ function tool_managertokens_create_record($options) {
|
|||||||
global $DB;
|
global $DB;
|
||||||
|
|
||||||
if (!isset($options->targetid)) {
|
if (!isset($options->targetid)) {
|
||||||
print_error("missingparam", "error", "", "targetid");
|
print_error("missingparam", "error", null, "targetid");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isset($options->targettype)) {
|
if (!isset($options->targettype)) {
|
||||||
$options->targettype = "user";
|
$options->targettype = "null";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isset($options->token)) {
|
if (!isset($options->token)) {
|
||||||
@ -79,7 +80,7 @@ function tool_managertokens_create_record($options) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($DB->record_exists("tool_managertokens_tokens", array("token" => $options->token))) {
|
if ($DB->record_exists("tool_managertokens_tokens", array("token" => $options->token))) {
|
||||||
print_error("duplicatefieldname", "error", "", "token");
|
print_error("duplicatefieldname", "error", null, "token");
|
||||||
}
|
}
|
||||||
|
|
||||||
$token = new stdClass();
|
$token = new stdClass();
|
||||||
@ -111,6 +112,21 @@ function tool_managertokens_create_record($options) {
|
|||||||
return $recordid;
|
return $recordid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the user for authorization.
|
||||||
|
*
|
||||||
|
* @param object $token
|
||||||
|
*/
|
||||||
|
function tool_managertokens_definition_user($token) {
|
||||||
|
$user = false;
|
||||||
|
|
||||||
|
if ($token->targettype == "user") {
|
||||||
|
$user = core_user::get_user($token->targetid);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $user;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes all entries in the table.
|
* Removes all entries in the table.
|
||||||
* Attention! All current records are deleted!
|
* Attention! All current records are deleted!
|
||||||
@ -151,10 +167,7 @@ function tool_managertokens_find_record($key = 0) {
|
|||||||
global $DB;
|
global $DB;
|
||||||
|
|
||||||
$select = "id = '$key' OR token = '$key'";
|
$select = "id = '$key' OR token = '$key'";
|
||||||
if ($token = $DB->get_record_select("tool_managertokens_tokens", $select, null, "*", IGNORE_MISSING)) {
|
$token = $DB->get_record_select("tool_managertokens_tokens", $select, null, "*", IGNORE_MISSING);
|
||||||
$token = tool_managertokens_standardization_record($token);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $token;
|
return $token;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -172,6 +185,46 @@ function tool_managertokens_get_list($limitfrom = 0, $limitnum = 0) {
|
|||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Performs additional actions for the user.
|
||||||
|
*
|
||||||
|
* @param object $token
|
||||||
|
* @param object $user
|
||||||
|
*/
|
||||||
|
function tool_managertokens_perform_additional_action($token, $user) {
|
||||||
|
global $DB;
|
||||||
|
|
||||||
|
/* Redirect user */
|
||||||
|
if ($token->extendedaction == "redirect") {
|
||||||
|
$redirect = new moodle_url($token->extendedoptions);
|
||||||
|
redirect($redirect);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Enroll in the local group */
|
||||||
|
if ($token->extendedaction == "group") {
|
||||||
|
$groupid = intval($token->extendedoptions);
|
||||||
|
if ($DB->record_exists("groups", array("id" => $groupid))) {
|
||||||
|
tool_managertokens_enroll_user_for_group($user, $groupid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Enroll in the global group */
|
||||||
|
if ($token->extendedaction == "cohort") {
|
||||||
|
$cohortid = intval($token->extendedoptions);
|
||||||
|
if ($DB->record_exists("cohort", array("id" => $cohortid))) {
|
||||||
|
tool_managertokens_enroll_user_for_cohort($user, $cohortid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Enroll in the global course */
|
||||||
|
if ($token->extendedaction == "course") {
|
||||||
|
$courseid = intval($token->extendedoptions);
|
||||||
|
if ($DB->record_exists("course", array("id" => $courseid))) {
|
||||||
|
tool_managertokens_enroll_user_for_course($user, $courseid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Restores data from a backup.
|
* Restores data from a backup.
|
||||||
* Attention! All current records are deleted!
|
* Attention! All current records are deleted!
|
||||||
@ -199,7 +252,7 @@ function tool_managertokens_update_record($options) {
|
|||||||
$result = false;
|
$result = false;
|
||||||
|
|
||||||
if (!isset($options->id)) {
|
if (!isset($options->id)) {
|
||||||
print_error("missingparam", "error", "", "id");
|
print_error("missingparam", "error", null, "id");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($token = $DB->get_record("tool_managertokens_tokens", array("id" => $options->id), "*", IGNORE_MISSING)) {
|
if ($token = $DB->get_record("tool_managertokens_tokens", array("id" => $options->id), "*", IGNORE_MISSING)) {
|
||||||
@ -239,26 +292,3 @@ function tool_managertokens_update_record($options) {
|
|||||||
|
|
||||||
return boolval($result);
|
return boolval($result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Standardizes the source document.
|
|
||||||
*
|
|
||||||
* @param object $record
|
|
||||||
* @return object
|
|
||||||
*/
|
|
||||||
function tool_managertokens_standardization_record($record) {
|
|
||||||
$record->id = intval($record->id);
|
|
||||||
$record->enabled = boolval($record->enabled);
|
|
||||||
$record->extendedaction = strval($record->extendedaction);
|
|
||||||
$record->extendedoptions = strval($record->extendedoptions);
|
|
||||||
$record->limited = intval($record->limited);
|
|
||||||
$record->scope = intval($record->scope);
|
|
||||||
$record->targetid = intval($record->targetid);
|
|
||||||
$record->targettype = strval($record->targettype);
|
|
||||||
$record->timecreated = intval($record->timecreated);
|
|
||||||
$record->timelastuse = intval($record->timelastuse);
|
|
||||||
$record->timelimited = intval($record->timelimited);
|
|
||||||
$record->timemodified = intval($record->timemodified);
|
|
||||||
$record->token = strval($record->token);
|
|
||||||
return $record;
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user