Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

auth/db: use auth_validate_form() to set auth_db_stdchangepassword wh…

…en passtype is 'internal'

When using the 'internal' password handling, set auth_db_stdchangepassword
so we allow users to change their password normally.
  • Loading branch information...
commit 8d2529e59e962ec307d560b8a306494943f4e051 1 parent 8f527a4
martinlanghoff authored
Showing with 40 additions and 1 deletion.
  1. +40 −1 auth/db/lib.php
View
41 auth/db/lib.php
@@ -409,4 +409,43 @@ function auth_db_update_user_record($username, $updatekeys=false) {
return get_record_select("user", "username = '$username' AND deleted <> '1'");
}
-?>
+// A chance to validate form data, and last chance to
+// do stuff before it is inserted in config_plugin
+function auth_validate_form(&$form, &$err) {
+
+ // compat until we rework auth a bit
+ if ($form['auth_dbpasstype'] === 'internal') {
+ $CFG->auth_db_stdchangepassword = true;
+ if ($conf = get_record('config', 'name', 'auth_db_stdchangepassword')) {
+ $conf->value = 1;
+ if (! update_record('config', $conf)) {
+ notify("Could not update $name to $value");
+ }
+ } else {
+ $conf = new StdClass;
+ $conf->name = 'auth_db_stdchangepassword';
+ $conf->value = 1;
+ if (! insert_record('config', $conf)) {
+ notify("Error: could not add new variable $name !");
+ }
+ }
+ } else {
+ $CFG->auth_db_stdchangepassword = false;
+ if ($conf = get_record('config', 'name', 'auth_db_stdchangepassword')) {
+ $conf->value = 0;
+ if (! update_record('config', $conf)) {
+ notify("Could not update $name to $value");
+ }
+ } else {
+ $conf = new StdClass;
+ $conf->name = 'auth_db_stdchangepassword';
+ $conf->value = 0;
+ if (! insert_record('config', $conf)) {
+ notify("Error: could not add new variable $name !");
+ }
+ }
+ }
+ return true;
+}
+
+?>
Please sign in to comment.
Something went wrong with that request. Please try again.