mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 16:36:37 +02:00
MDL-8590 auth cleanup - part 7 and MDL-8598
This commit is contained in:
parent
430759a5fe
commit
9696bd8966
4 changed files with 84 additions and 23 deletions
|
@ -1655,18 +1655,20 @@ function require_login($courseorid=0, $autologinguest=true, $cm=null) {
|
|||
if (!empty($USER->preference['auth_forcepasswordchange']) && empty($USER->realuser)) {
|
||||
if ($userauth->can_change_password()) {
|
||||
$SESSION->wantsurl = $FULLME;
|
||||
if (empty($CFG->loginhttps)) {
|
||||
redirect($CFG->wwwroot .'/login/change_password.php');
|
||||
if (method_exists($userauth, 'change_password_url') and $userauth->change_password_url()) {
|
||||
//use plugin custom url
|
||||
redirect($userauth->change_password_url());
|
||||
} else {
|
||||
$wwwroot = str_replace('http:','https:', $CFG->wwwroot);
|
||||
redirect($wwwroot .'/login/change_password.php');
|
||||
//use moodle internal method
|
||||
if (empty($CFG->loginhttps)) {
|
||||
redirect($CFG->wwwroot .'/login/change_password.php');
|
||||
} else {
|
||||
$wwwroot = str_replace('http:','https:', $CFG->wwwroot);
|
||||
redirect($wwwroot .'/login/change_password.php');
|
||||
}
|
||||
}
|
||||
} else if($userauth->change_password_url()) {
|
||||
redirect($userauth->change_password_url());
|
||||
} else {
|
||||
error('You cannot proceed without changing your password.
|
||||
However there is no available page for changing it.
|
||||
Please contact your Moodle Administrator.');
|
||||
error(get_strin('nopasswordchangeforced', 'auth'));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2376,18 +2378,12 @@ function is_enabled_auth($auth) {
|
|||
* Returns an authentication plugin instance.
|
||||
*
|
||||
* @uses $CFG
|
||||
* @param string $auth Form of authentication required. Defaults to the
|
||||
* global setting in {@link $CFG}.
|
||||
* @param string $auth name of authentication plugin
|
||||
* @return object An instance of the required authentication plugin.
|
||||
*/
|
||||
function get_auth_plugin($auth = '') {
|
||||
function get_auth_plugin($auth) {
|
||||
global $CFG;
|
||||
|
||||
// use the manual if not specified
|
||||
if (empty($auth)) {
|
||||
$auth = 'manual';
|
||||
}
|
||||
|
||||
// check the plugin exists first
|
||||
if (! exists_auth_plugin($auth)) {
|
||||
error("Authentication plugin '$auth' not found.");
|
||||
|
@ -2406,7 +2402,6 @@ function get_auth_plugin($auth = '') {
|
|||
* @uses $CFG
|
||||
* @param string $auth Form of authentication required
|
||||
* @return bool
|
||||
* @todo Outline auth types and provide code example
|
||||
*/
|
||||
function is_internal_auth($auth) {
|
||||
$authplugin = get_auth_plugin($auth); // throws error if bad $auth
|
||||
|
@ -3568,6 +3563,48 @@ function send_password_change_confirmation_email($user) {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* send_password_change_info.
|
||||
*
|
||||
* @uses $CFG
|
||||
* @param user $user A {@link $USER} object
|
||||
* @return bool|string Returns "true" if mail was sent OK, "emailstop" if email
|
||||
* was blocked by user and "false" if there was another sort of error.
|
||||
*/
|
||||
function send_password_change_info($user) {
|
||||
|
||||
global $CFG;
|
||||
|
||||
$site = get_site();
|
||||
$from = get_admin();
|
||||
|
||||
$data = new object();
|
||||
$data->firstname = $user->firstname;
|
||||
$data->sitename = $site->fullname;
|
||||
$data->admin = fullname($from).' ('. $from->email .')';
|
||||
|
||||
$userauth = get_auth_plugin($user->auth);
|
||||
if ($userauth->can_change_password() and method_exists($userauth, 'change_password_url') and $userauth->change_password_url()) {
|
||||
// we have some external url for password cahnging
|
||||
$data->link .= $userauth->change_password_url();
|
||||
|
||||
} else {
|
||||
//no way to change password, sorry
|
||||
$data->link = '';
|
||||
}
|
||||
|
||||
if (!empty($data->link)) {
|
||||
$message = get_string('emailpasswordchangeinfo', '', $data);
|
||||
$subject = get_string('emailpasswordchangeinfosubject', '', $site->fullname);
|
||||
} else {
|
||||
$message = get_string('emailpasswordchangeinfofail', '', $data);
|
||||
$subject = get_string('emailpasswordchangeinfosubject', '', $site->fullname);
|
||||
}
|
||||
|
||||
return email_to_user($user, $from, $subject, $message);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Check that an email is allowed. It returns an error message if there
|
||||
* was a problem.
|
||||
|
@ -4051,8 +4088,8 @@ function clean_filename($string) {
|
|||
function current_language() {
|
||||
global $CFG, $USER, $SESSION, $COURSE;
|
||||
|
||||
if (!empty($OURSE->lang)) { // Course language can override all other settings for this page
|
||||
$return = $OURSE->lang;
|
||||
if ($COURSE->id != SITEID and !empty($COURSE->lang)) { // Course language can override all other settings for this page
|
||||
$return = $COURSE->lang;
|
||||
|
||||
} else if (!empty($SESSION->lang)) { // Session language can override other settings
|
||||
$return = $SESSION->lang;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue