Added additional action handlers
This commit is contained in:
		
							
								
								
									
										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)) {
 | 
				
			||||||
@@ -238,27 +291,4 @@ 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;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user