diff options
Diffstat (limited to 'inc/auth')
-rw-r--r-- | inc/auth/basic.class.php | 33 |
1 files changed, 33 insertions, 0 deletions
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] * |