summaryrefslogtreecommitdiff
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/auth.php6
-rw-r--r--inc/auth/basic.class.php33
2 files changed, 36 insertions, 3 deletions
diff --git a/inc/auth.php b/inc/auth.php
index 6e3b543de..8d6f48738 100644
--- a/inc/auth.php
+++ b/inc/auth.php
@@ -630,7 +630,7 @@ function register(){
}
//okay try to create the user
- if(!$auth->createUser($_POST['login'],$pass,$_POST['fullname'],$_POST['email'])){
+ if(!$auth->triggerUserMod('create', array($_POST['login'],$pass,$_POST['fullname'],$_POST['email']))){
msg($lang['reguexists'],-1);
return false;
}
@@ -715,7 +715,7 @@ function updateprofile() {
}
}
- return $auth->modifyUser($_SERVER['REMOTE_USER'], $changes);
+ return $auth->triggerUserMod('modify', array($_SERVER['REMOTE_USER'], $changes));
}
/**
@@ -764,7 +764,7 @@ function act_resendpwd(){
}
$pass = auth_pwgen();
- if (!$auth->modifyUser($user,array('pass' => $pass))) {
+ if (!$auth->triggerUserMod('modify', array($user,array('pass' => $pass)))) {
msg('error modifying user data',-1);
return false;
}
diff --git a/inc/auth/basic.class.php b/inc/auth/basic.class.php
index c3bb9d32e..c93e3d5c5 100644
--- a/inc/auth/basic.class.php
+++ b/inc/auth/basic.class.php
@@ -90,6 +90,38 @@ class auth_basic {
}
/**
+ * Trigger the AUTH_USERDATA_CHANGE event and call the modification function. [ DO NOT OVERRIDE ]
+ *
+ * You should use this function instead of calling createUser, modifyUser or
+ * deleteUsers directly. The event handlers can prevent the modification, for
+ * example for enforcing a user name schema.
+ *
+ * @author Gabriel Birke <birke@d-scribe.de>
+ * @param string $type Modification type ('create', 'modify', 'delete')
+ * @param array $params Parameters for the createUser, modifyUser or deleteUsers method. The content of this array depends on the modification type
+ * @return mixed Result from the modification function or false if an event handler has canceled the action
+ */
+ function triggerUserMod($type, $params)
+ {
+ $validTypes = array(
+ 'create' => 'createUser',
+ 'modify' => 'modifyUser',
+ 'delete' => 'deleteUsers'
+ );
+ if(empty($validTypes[$type]))
+ return false;
+ $eventdata = array('type' => $type, 'params' => $params, 'modification_result' => null);
+ $evt = new Doku_Event('AUTH_USER_CHANGE', $eventdata);
+ if ($evt->advise_before(true)) {
+ $result = call_user_func_array(array($this, $validTypes[$type]), $params);
+ $evt->data['modification_result'] = $result;
+ }
+ $evt->advise_after();
+ unset($evt);
+ return $result;
+ }
+
+ /**
* Log off the current user [ OPTIONAL ]
*
* Is run in addition to the ususal logoff method. Should
@@ -290,6 +322,7 @@ class auth_basic {
return array();
}
+
/**
* Check Session Cache validity [implement only where required/possible]
*