Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Added a new "auth" field to the user table. This field contains the

authentication mechanism used to create that user record.

Also added code to upgrade existing systems to have entries in that
field, and for new users to also have that field defined.

This will allow us to later improve the login procedure to be able to
handle various types of authentication.
  • Loading branch information...
commit 4e11ad4faa32fa9f8dcb8c8f90858d47cf2a6cd3 1 parent 83c87a0
moodler authored
View
14 lib/db/mysql.php
@@ -807,6 +807,20 @@ function main_upgrade($oldversion=0) {
set_field('blocks', 'version', 2004081200, 'name', 'course_list');
}
+ if ($oldversion < 2004081500) { // Adding new "auth" field to user table to allow more flexibility
+ table_column('user', '', 'auth', 'varchar', '20', '', 'manual', 'not null', 'id');
+
+ execute_sql("UPDATE {$CFG->prefix}user SET auth = 'manual'"); // Set everyone to 'manual' to be sure
+
+ if ($admins = get_admins()) { // Set all the NON-admins to whatever the current auth module is
+ $adminlist = array();
+ foreach ($admins as $user) {
+ $adminlist[] = $user->id;
+ }
+ $adminlist = implode(',', $adminlist);
+ execute_sql("UPDATE {$CFG->prefix}user SET auth = '$CFG->auth' WHERE id NOT IN ($adminlist)");
+ }
+ }
return $result;
View
1  lib/db/mysql.sql
@@ -307,6 +307,7 @@ CREATE TABLE `prefix_scale` (
CREATE TABLE `prefix_user` (
`id` int(10) unsigned NOT NULL auto_increment,
+ `auth` varchar(20) NOT NULL default 'manual',
`confirmed` tinyint(1) NOT NULL default '0',
`deleted` tinyint(1) NOT NULL default '0',
`username` varchar(100) NOT NULL default '',
View
14 lib/db/postgres7.php
@@ -549,6 +549,20 @@ function main_upgrade($oldversion=0) {
set_field('blocks', 'version', 2004081200, 'name', 'course_list');
}
+ if ($oldversion < 2004081500) { // Adding new "auth" field to user table to allow more flexibility
+ table_column('user', '', 'auth', 'varchar', '20', '', 'manual', 'not null', 'id');
+
+ execute_sql("UPDATE {$CFG->prefix}user SET auth = 'manual'"); // Set everyone to 'manual' to be sure
+
+ if ($admins = get_admins()) { // Set all the NON-admins to whatever the current auth module is
+ $adminlist = array();
+ foreach ($admins as $user) {
+ $adminlist[] = $user->id;
+ }
+ $adminlist = implode(',', $adminlist);
+ execute_sql("UPDATE {$CFG->prefix}user SET auth = '$CFG->auth' WHERE id NOT IN ($adminlist)");
+ }
+ }
return $result;
View
1  lib/db/postgres7.sql
@@ -197,6 +197,7 @@ CREATE INDEX prefix_cache_text_md5key_idx ON prefix_cache_text (md5key);
CREATE TABLE prefix_user (
id SERIAL PRIMARY KEY,
+ auth varchar(20) NOT NULL default 'manual',
confirmed integer NOT NULL default '0',
deleted integer NOT NULL default '0',
username varchar(100) NOT NULL default '',
View
1  lib/moodlelib.php
@@ -716,6 +716,7 @@ function create_user_record($username, $password) {
}
}
+ $newuser->auth = $CFG->auth;
$newuser->username = $username;
$newuser->password = md5($password);
$newuser->lang = $CFG->lang;
View
1  login/index.php
@@ -5,6 +5,7 @@
// Check if the guest user exists. If not, create one.
if (! record_exists("user", "username", "guest")) {
+ $guest->auth = "manual";
$guest->username = "guest";
$guest->password = md5("guest");
$guest->firstname = addslashes(get_string("guestuser"));
View
1  login/signup.php
@@ -23,6 +23,7 @@
$user->lang = current_language();
$user->firstaccess = time();
$user->secret = random_string(15);
+ $user->auth = $CFG->auth;
if (!empty($CFG->auth_user_create) and function_exists('auth_user_create') ){
if (! auth_user_exists($user->username)) {
if (! auth_user_create($user,$plainpass)) {
View
4 version.php
@@ -5,8 +5,8 @@
// database to determine whether upgrades should
// be performed (see lib/db/*.php)
-$version = 2004081200; // The current version is a date (YYYYMMDDXX)
+$version = 2004081500; // The current version is a date (YYYYMMDDXX)
-$release = "1.4 development"; // User-friendly version number
+$release = "1.4 alpha"; // User-friendly version number
?>
Please sign in to comment.
Something went wrong with that request. Please try again.