exclude login failures from session list

This commit is contained in:
Ralf Becker 2014-08-19 17:16:19 +00:00
parent 0a6b4e98b5
commit 828274fea9
3 changed files with 8 additions and 5 deletions

View File

@ -68,6 +68,7 @@ class admin_accesslog
$query['col_filter']['lo'] = null; // not logged out
$query['col_filter'][0] = 'session_dla > '.(int)(time() - $GLOBALS['egw_info']['server']['sessions_timeout']);
$query['col_filter'][1] = "(notification_heartbeat IS NULL OR notification_heartbeat > $heartbeat_limit)";
$query['col_filter'][2] = 'account_id>0';
}
$total = $this->so->get_rows($query,$rows,$readonlys);

View File

@ -225,7 +225,6 @@ class admin_ui
$apps = array_unique(array_merge(array('admin'), $GLOBALS['egw']->hooks->hook_implemented('edit_user')));
foreach($apps as $app)
{
if ($app == 'felamimail') continue; // disabled fmail for now, as it break whole admin, dono why
$GLOBALS['menuData'] = $data = array();
$data = $GLOBALS['egw']->hooks->single('edit_user', $app, true);
if (!is_array($data)) $data = $GLOBALS['menuData'];
@ -264,6 +263,7 @@ if ($app == 'felamimail') continue; // disabled fmail for now, as it break whole
'group' => ++$group,
'popup' => '400x200',
'url' => 'menuaction=admin.admin_account.delete&account_id=$id',
'allowOnMultiple' => false,
);
}
//error_log(__METHOD__."() actions=".array2string($actions));

View File

@ -522,7 +522,7 @@ class egw_session
// for WebDAV and GroupDAV we use a pseudo sessionid created from md5(user:passwd)
// --> allows this stateless protocolls which use basic auth to use sessions!
if ($this->sessionid = self::get_sessionid(true))
if (($this->sessionid = self::get_sessionid(true)))
{
$no_session = true; // no need to set cookie
session_id($this->sessionid);
@ -577,7 +577,7 @@ class egw_session
if ($reason) // called hook requests to deny the session
{
$this->reason = $this->cd_reason = $reason;
$this->log_access($this->reason,$login,$user_ip,$this->account_id); // log unsuccessfull login
$this->log_access($this->reason,$login,$user_ip,0); // log unsuccessfull login
if (self::ERROR_LOG_DEBUG) error_log(__METHOD__."($this->login,$this->passwd,$this->passwd_type,$no_session,$auth_check) UNSUCCESSFULL ($this->reason)");
return false;
}
@ -1677,6 +1677,7 @@ class egw_session
$order_by = 'session_dla DESC';
}
$filter['lo'] = null;
$filter[] = 'account_id>0';
$filter[] = 'session_dla > '.(int)(time() - $GLOBALS['egw_info']['server']['sessions_timeout']);
$filter[] = '(notification_heartbeat IS NULL OR notification_heartbeat > '.self::heartbeat_limit().')';
foreach($GLOBALS['egw']->db->select(self::ACCESS_LOG_TABLE, '*', $filter, __LINE__, __FILE__,
@ -1690,12 +1691,13 @@ class egw_session
/**
* Query number of sessions (not more then once every N secs)
*
* @param array $filter=array() extra filter for sessions
* @param array $filter =array() extra filter for sessions
* @return int number of active sessions
*/
public static function session_count(array $filter=array())
{
$filter['lo'] = null;
$filter[] = 'account_id>0';
$filter[] = 'session_dla > '.(int)(time() - $GLOBALS['egw_info']['server']['sessions_timeout']);
$filter[] = '(notification_heartbeat IS NULL OR notification_heartbeat > '.self::heartbeat_limit().')';
return $GLOBALS['egw']->db->select(self::ACCESS_LOG_TABLE, 'COUNT(*)', $filter, __LINE__, __FILE__)->fetchColumn();
@ -1708,7 +1710,7 @@ class egw_session
*/
public static function heartbeat_limit()
{
static $limit;
static $limit=null;
if (is_null($limit))
{