diff options
-rw-r--r-- | include/functions_user.inc.php | 16 | ||||
-rw-r--r-- | tools/triggers_list.php | 19 |
2 files changed, 35 insertions, 0 deletions
diff --git a/include/functions_user.inc.php b/include/functions_user.inc.php index 40d9fcd34..b1f55ea2e 100644 --- a/include/functions_user.inc.php +++ b/include/functions_user.inc.php @@ -1063,6 +1063,7 @@ function log_user($user_id, $remember_me) $_SESSION['pwg_uid'] = (int)$user_id; $user['id'] = $_SESSION['pwg_uid']; + trigger_action('user_login', $user['id']); } /* @@ -1177,6 +1178,18 @@ function pwg_password_verify($password, $hash, $user_id=null) */ function try_log_user($username, $password, $remember_me) { + return trigger_event('try_log_user', false, $username, $password, $remember_me); +} + +add_event_handler('try_log_user', 'pwg_login', EVENT_HANDLER_PRIORITY_NEUTRAL, 4); + +function pwg_login($success, $username, $password, $remember_me) +{ + if ($success===true) + { + return true; + } + // we force the session table to be clean pwg_session_gc(); @@ -1203,6 +1216,9 @@ SELECT '.$conf['user_fields']['id'].' AS id, function logout_user() { global $conf; + + trigger_action('user_logout', @$_SESSION['pwg_uid']); + $_SESSION = array(); session_unset(); session_destroy(); diff --git a/tools/triggers_list.php b/tools/triggers_list.php index bda83ffde..1ca1bdf29 100644 --- a/tools/triggers_list.php +++ b/tools/triggers_list.php @@ -791,6 +791,25 @@ array( 'vars' => array('bool', null, 'string', 'methodName', 'array', 'params'), 'files' => array('include\ws_core.inc.php (PwgServer::invoke)'), ), +array( + 'name' => 'user_logout', + 'type' => 'trigger_action', + 'vars' => array('int', 'user_id'), + 'files' => array('include\functions_user.inc.php (logout_user)'), +), +array( + 'name' => 'user_login', + 'type' => 'trigger_action', + 'vars' => array('int', 'user_id'), + 'files' => array('include\functions_user.inc.php (log_user)'), +), +array( + 'name' => 'try_log_user', + 'type' => 'trigger_event', + 'vars' => array('boolean', 'success', 'string', 'username', 'string', 'password', 'bool', 'remember_me'), + 'files' => array('include\functions_user.inc.php (try_log_user)'), + 'infos' => 'Used by identification form to check user credentials and log user. If success is true, another login method already succeed. Return true if your method succeed.', +), ); ?> <!DOCTYPE html> |