From a9434092adc499c7b7bbab100cd09c5ca02e628e Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Mon, 20 Nov 2017 05:49:17 +0400 Subject: Initial commit --- auth.php | 128 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 auth.php (limited to 'auth.php') diff --git a/auth.php b/auth.php new file mode 100644 index 0000000..86cf1e4 --- /dev/null +++ b/auth.php @@ -0,0 +1,128 @@ +. + +/** + * Authorization by tokens. + * + * @package auth_token + * @copyright 2017 "Valentin Popov" + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined("MOODLE_INTERNAL") || die(); + +require_once($CFG->libdir . "/authlib.php"); + +/** + * Plugin user authentication plugin. + */ +class auth_plugin_token extends auth_plugin_base { + /** + * Constructor. + */ + public function __construct() { + $this->authtype = "token"; + $this->config = get_config("auth_token"); + } + + /** + * Old syntax of class constructor. Deprecated in PHP7. + * + * @deprecated since Moodle 3.1 + */ + public function auth_plugin_token() { + debugging("Use of class name as constructor is deprecated", DEBUG_DEVELOPER); + self::__construct(); + } + + /** + * Returns true if the username and password work or don't exist and false + * if the user exists and the password is wrong. + * + * @param string $username The username + * @param string $password The password + * @return boolean Authentication success or failure. + */ + public function user_login($username, $password) { + global $CFG, $DB; + + if ($user = $DB->get_record("user", array("username" => $username, "mnethostid" => $GFG->mnet_localhost_id))) { + return validate_internal_user_password($user, $password); + } + + return false; + } + + /** + * Updates the user's password. + * Called when the user password is updated. + * + * @param object $user User table object + * @param string $newpassword Plaintext password + * @return boolean Password updated success or failure. + * + */ + public function user_update_password($user, $password) { + $user = get_complete_user_data("id", $user->id); + return update_internal_user_password($user, $password); + } + + /** + * Indicates if password hashes should be stored in local moodle database. + * + * @return boolean + */ + public function prevent_local_passwords() { + return false; + } + + /** + * Returns true if this authentication plugin is 'internal'. + * + * @return boolean + */ + public function is_internal() { + return true; + } + + /** + * Returns true if this authentication plugin can change the user's + * password. + * + * @return boolean + */ + public function can_change_password() { + return false; + } + + /** + * Returns true if plugin allows resetting of internal password. + * + * @return boolean + */ + public function can_reset_password() { + return false; + } + + /** + * Returns true if plugin can be manually set. + * + * @return boolean + */ + public function can_be_manually_set() { + return true; + } +} \ No newline at end of file -- cgit v1.2.3