Skip to content

Commit ff5568a

Browse files
committed
feature:2823 Add triggers for login system
git-svn-id: http://piwigo.org/svn/trunk@20282 68402e56-0260-453c-a942-63ccdbb3a9ee
1 parent 3d81c8d commit ff5568a

2 files changed

Lines changed: 35 additions & 0 deletions

File tree

include/functions_user.inc.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1063,6 +1063,7 @@ function log_user($user_id, $remember_me)
10631063
$_SESSION['pwg_uid'] = (int)$user_id;
10641064

10651065
$user['id'] = $_SESSION['pwg_uid'];
1066+
trigger_action('user_login', $user['id']);
10661067
}
10671068

10681069
/*
@@ -1177,6 +1178,18 @@ function pwg_password_verify($password, $hash, $user_id=null)
11771178
*/
11781179
function try_log_user($username, $password, $remember_me)
11791180
{
1181+
return trigger_event('try_log_user', false, $username, $password, $remember_me);
1182+
}
1183+
1184+
add_event_handler('try_log_user', 'pwg_login', EVENT_HANDLER_PRIORITY_NEUTRAL, 4);
1185+
1186+
function pwg_login($success, $username, $password, $remember_me)
1187+
{
1188+
if ($success===true)
1189+
{
1190+
return true;
1191+
}
1192+
11801193
// we force the session table to be clean
11811194
pwg_session_gc();
11821195

@@ -1203,6 +1216,9 @@ function try_log_user($username, $password, $remember_me)
12031216
function logout_user()
12041217
{
12051218
global $conf;
1219+
1220+
trigger_action('user_logout', @$_SESSION['pwg_uid']);
1221+
12061222
$_SESSION = array();
12071223
session_unset();
12081224
session_destroy();

tools/triggers_list.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -791,6 +791,25 @@
791791
'vars' => array('bool', null, 'string', 'methodName', 'array', 'params'),
792792
'files' => array('include\ws_core.inc.php (PwgServer::invoke)'),
793793
),
794+
array(
795+
'name' => 'user_logout',
796+
'type' => 'trigger_action',
797+
'vars' => array('int', 'user_id'),
798+
'files' => array('include\functions_user.inc.php (logout_user)'),
799+
),
800+
array(
801+
'name' => 'user_login',
802+
'type' => 'trigger_action',
803+
'vars' => array('int', 'user_id'),
804+
'files' => array('include\functions_user.inc.php (log_user)'),
805+
),
806+
array(
807+
'name' => 'try_log_user',
808+
'type' => 'trigger_event',
809+
'vars' => array('boolean', 'success', 'string', 'username', 'string', 'password', 'bool', 'remember_me'),
810+
'files' => array('include\functions_user.inc.php (try_log_user)'),
811+
'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.',
812+
),
794813
);
795814
?>
796815
<!DOCTYPE html>

0 commit comments

Comments
 (0)