diff options
Diffstat (limited to 'phpBB/includes')
| -rw-r--r-- | phpBB/includes/acp/acp_users.php | 25 | 
1 files changed, 25 insertions, 0 deletions
diff --git a/phpBB/includes/acp/acp_users.php b/phpBB/includes/acp/acp_users.php index 4905840e02..cc196a5869 100644 --- a/phpBB/includes/acp/acp_users.php +++ b/phpBB/includes/acp/acp_users.php @@ -1550,6 +1550,31 @@ class acp_users  							WHERE user_id = $user_id";  						$db->sql_query($sql); +						// Check if user has an active session +						if ($user_row['session_id']) +						{ +							// We'll update the session if user_allow_viewonline has changed and the user is a bot +							// Or if it's a regular user and the admin set it to hide the session +							if ($user_row['user_allow_viewonline'] != $sql_ary['user_allow_viewonline'] && $user_row['user_type'] == USER_IGNORE +								|| $user_row['user_allow_viewonline'] && !$sql_ary['user_allow_viewonline']) +							{ +								// We also need to check if the user has the permission to cloak. +								$user_auth = new auth(); +								$user_auth->acl($user_row); + +								$session_sql_ary = array( +									'session_viewonline'	=> ($user_auth->acl_get('u_hideonline')) ? $sql_ary['user_allow_viewonline'] : true, +								); + +								$sql = 'UPDATE ' . SESSIONS_TABLE . ' +									SET ' . $db->sql_build_array('UPDATE', $session_sql_ary) . " +									WHERE session_user_id = $user_id"; +								$db->sql_query($sql); + +								unset($user_auth); +							} +						} +  						trigger_error($user->lang['USER_PREFS_UPDATED'] . adm_back_link($this->u_action . '&u=' . $user_id));  					}  | 
