Skip to content

Commit

Permalink
Added a new "auth" field to the user table. This field contains the
Browse files Browse the repository at this point in the history
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
moodler committed Aug 15, 2004
1 parent 83c87a0 commit 4e11ad4
Show file tree
Hide file tree
Showing 8 changed files with 35 additions and 2 deletions.
14 changes: 14 additions & 0 deletions lib/db/mysql.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
1 change: 1 addition & 0 deletions lib/db/mysql.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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 '',
Expand Down
14 changes: 14 additions & 0 deletions lib/db/postgres7.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
1 change: 1 addition & 0 deletions lib/db/postgres7.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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 '',
Expand Down
1 change: 1 addition & 0 deletions lib/moodlelib.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
1 change: 1 addition & 0 deletions login/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -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"));
Expand Down
1 change: 1 addition & 0 deletions login/signup.php
Original file line number Diff line number Diff line change
Expand Up @@ -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)) {
Expand Down
4 changes: 2 additions & 2 deletions version.php
Original file line number Diff line number Diff line change
Expand Up @@ -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

?>

0 comments on commit 4e11ad4

Please sign in to comment.