feature:2823 Add triggers for login system
git-svn-id: http://piwigo.org/svn/trunk@20282 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
parent
3d81c8d2cb
commit
ff5568afec
2 changed files with 35 additions and 0 deletions
|
@ -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();
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue