====== Authentication ======
===== How To Remove Non-Default Authentication Plugins =====
If you can't login to a copied Moodle because the authentication plugin does not match your local situation, go to the database. Execute this sql statement:
UPDATE mdl_config SET value = 'manual' WHERE name LIKE 'auth';
Now the authentication plugin is set to the default plugin.
In some cases, such as for a Moodle copy which was originally using a CAS server, it may also be necessary to update the mdl_user table:
UPDATE mdl_user SET auth = 'manual';
Remove https login:
UPDATE mdl_config SET value = '0' WHERE mdl_config.name LIKE 'loginhttps';
And finally, some systems may use an alternative login url which you should delete:
UPDATE mdl_config SET value = '' WHERE name LIKE 'alternateloginurl';
And now all at once:
UPDATE mdl_config SET value = 'manual' WHERE name LIKE 'auth';
UPDATE mdl_user SET auth = 'manual';
UPDATE mdl_config SET value = '' WHERE name LIKE 'alternateloginurl';
UPDATE mdl_config SET value = '0' WHERE mdl_config.name LIKE 'loginhttps';
Don't forget to empty the cache folders in ''moodledata''!
===== Restore Deleted Users =====
Whenever you delete a user in Moodle, the ''mdl_user.deleted'' column is set to 1. But that's not all:
* username is set to "$user->email.".time();
* email is set to md5 hash of the new username
So to restore the user, you need something like the following:
-- Restore deleted users (Search for a dot [.], starting from the right of the string, return substring till right-most dot)
UPDATE IGNORE mdl_user AS u SET deleted = 0,
username = SUBSTRING(u.username, 1, (LENGTH(u.username) - POSITION('.' IN REVERSE(u.username)))),
email = u.username
WHERE deleted = 1
The ''IGNORE'' keyword means: skip all problematic updates (e.g. duplicate key), but do perform the other updates.