Commit 21f01485 authored by moodler's avatar moodler
Browse files

Two new config variables allow certain email addresses to be allowed or not.

parent ebd52396
......@@ -181,6 +181,13 @@ $CFG->defaultblocks = 'participants,activity_modules,search_forums,admin,course_
// Seconds for files to remain in caches. Decrease this if you are worried
// about students being served outdated versions of uploaded files.
// $CFG->filelifetime = 86400;
//
// The following two settings allow you to specify allowed domains for
// email addresses. If the first one is set, then Moodle will DISALLOW
// all domains EXCEPT those listed. Otherwise, if the second one is set
// then all addresses are ALLOWED EXCEPT those listed.
// $CFG->allowemailaddresses = "myschool.edu.au hotmail.com";
// $CFG->denyemailaddresses = "hotmail.com yahoo.com";
//=========================================================================
// ALL DONE! To continue installation, visit your main page with a browser
......
......@@ -372,6 +372,8 @@ $string['emailenableclick'] = 'Click here to re-enable all email being sent to t
$string['emailexists'] = 'This email address is already registered.';
$string['emailformat'] = 'Email format';
$string['emailmustbereal'] = 'Note: your email address must be a real one';
$string['emailnotallowed'] = 'Email addresses in these domains are not allowed ($a)';
$string['emailonlyallowed'] = 'This email is not one of those that are allowed ($a)';
$string['emailpasswordconfirmation'] = 'Hi $a->firstname,
Someone (probably you) has requested a new password for your
......@@ -992,9 +994,12 @@ $string['updatingain'] = 'Updating $a->what in $a->in';
$string['upload'] = 'Upload';
$string['uploadafile'] = 'Upload a file';
$string['uploadedfileto'] = 'Uploaded $a->file to $a->directory';
$string['uploadformlimit'] = 'Uploaded file exceeded the maximum size limit set by the form';
$string['uploadnofilefound'] = 'No file was found - are you sure you selected one to upload?';
$string['uploadnotallowed'] = 'Uploads are not allowed';
$string['uploadpartialfile'] = 'File was only partially uploaded';
$string['uploadproblem'] = 'An unknown problem occurred while uploading the file \'$a\' (perhaps it was too large?)';
$string['uploadserverlimit'] = 'Uploaded file exceeded the maximum size limit set by the server';
$string['uploadthisfile'] = 'Upload this file';
$string['uploadusers'] = 'Upload users';
$string['usedinnplaces'] = 'Used in $a places';
......
......@@ -146,6 +146,33 @@ function validate_form($user, &$err) {
$err->country = get_string("missingcountry");
}
if (empty($err->email)) {
if (!empty($CFG->allowemailaddresses)) {
$allowed = explode(' ', $CFG->allowemailaddresses);
$err->email = get_string("emailonlyallowed", '', $CFG->allowemailaddresses); // Default
foreach ($allowed as $allowedpattern) {
$allowedpattern = trim($allowedpattern);
if (!$allowedpattern) {
continue;
}
if (strpos($user->email, $allowedpattern) !== false) {
unset($err->email);
}
}
} else if (!empty($CFG->denyemailaddresses)) {
$denied = explode(' ', $CFG->denyemailaddresses);
foreach ($denied as $deniedpattern) {
$deniedpattern = trim($deniedpattern);
if (!$deniedpattern) {
continue;
}
if (strpos($user->email, $deniedpattern) !== false) {
$err->email = get_string("emailnotallowed", '', $CFG->denyemailaddresses);
}
}
}
}
return;
}
......
......@@ -246,14 +246,41 @@ function find_form_errors(&$user, &$usernew, &$err) {
if (empty($usernew->country))
$err["country"] = get_string("missingcountry");
if (! validate_email($usernew->email))
if (! validate_email($usernew->email)) {
$err["email"] = get_string("invalidemail");
else if ($otheruser = get_record("user", "email", $usernew->email)) {
} else if ($otheruser = get_record("user", "email", $usernew->email)) {
if ($otheruser->id <> $user->id) {
$err["email"] = get_string("emailexists");
}
}
if (empty($err["email"]) and !isadmin()) {
if (!empty($CFG->allowemailaddresses)) {
$allowed = explode(' ', $CFG->allowemailaddresses);
$err["email"] = get_string("emailonlyallowed", '', $CFG->allowemailaddresses); // Default
foreach ($allowed as $allowedpattern) {
$allowedpattern = trim($allowedpattern);
if (!$allowedpattern) {
continue;
}
if (strpos($usernew->email, $allowedpattern) !== false) {
unset($err["email"]);
}
}
} else if (!empty($CFG->denyemailaddresses)) {
$denied = explode(' ', $CFG->denyemailaddresses);
foreach ($denied as $deniedpattern) {
$deniedpattern = trim($deniedpattern);
if (!$deniedpattern) {
continue;
}
if (strpos($usernew->email, $deniedpattern) !== false) {
$err->email = get_string("emailnotallowed", '', $CFG->denyemailaddresses);
}
}
}
}
$user->email = $usernew->email;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment