phpgw_access_log --> egw_access_log

This commit is contained in:
Ralf Becker 2005-11-13 09:47:05 +00:00
parent f6e4328f85
commit 1f37f024ca
6 changed files with 58 additions and 40 deletions

View File

@ -14,35 +14,31 @@
class soaccess_history
{
var $db;
var $table = 'egw_access_log';
function soaccess_history()
{
$this->db = clone($GLOBALS['egw']->db);
$this->db = clone($GLOBALS['egw']->db);
$this->db->set_app('phpgwapi');
}
function test_account_id($account_id)
{
if ($account_id)
{
return " where account_id='$account_id'";
return array('account_id' => $account_id);
}
return false;
}
function list_history($account_id,$start,$order,$sort)
function &list_history($account_id,$start,$order,$sort)
{
$where = $this->test_account_id($account_id);
$this->db->limit_query("select loginid,ip,li,lo,account_id,sessionid from phpgw_access_log $where order by li desc",$start,__LINE__,__FILE__);
while ($this->db->next_record())
$this->db->select($this->table,'loginid,ip,li,lo,account_id,sessionid',$where,__LINE__,__FILE__,(int) $start,'ORDER BY li DESC');
while (($row = $this->db->row(true)))
{
$records[] = array(
'loginid' => $this->db->f('loginid'),
'ip' => $this->db->f('ip'),
'li' => $this->db->f('li'),
'lo' => $this->db->f('lo'),
'account_id' => $this->db->f('account_id'),
'sessionid' => $this->db->f('sessionid')
);
$records[] = $row;
}
return $records;
}
@ -51,22 +47,20 @@
{
$where = $this->test_account_id($account_id);
$this->db->query("select count(*) from phpgw_access_log $where");
$this->db->next_record();
$this->db->select($this->table,'COUNT(*)',$where,__LINE__,__FILE__);
return $this->db->f(0);
return $this->db->next_record() ? $this->db->f(0) : 0;
}
function return_logged_out($account_id)
{
$where = array('lo != 0');
if ($account_id)
{
$where = "and account_id='$account_id'";
$where['account_id'] = $account_id;
}
$this->db->query("select count(*) from phpgw_access_log where lo!=0 $where");
$this->db->next_record();
return $this->db->f(0);
$this->db->select($this->table,'COUNT(*)',$where,__LINE__,__FILE__);
return $this->db->next_record() ? $this->db->f(0) : 0;
}
}

View File

@ -104,6 +104,11 @@
* @var object holder for the database object
*/
var $db;
/**
* @var $access_table name of access-log table
*/
var $access_table = 'egw_access_log';
/**
* @var array publicly available methods
@ -136,13 +141,14 @@
function sessions_($domain_names=null)
{
$this->db = clone($GLOBALS['egw']->db);
$this->db->set_app('phpgwapi');
$this->sessionid = get_var('sessionid',array('GET','COOKIE'));
$this->kp3 = get_var('kp3',array('GET','COOKIE'));
$this->phpgw_domains = $domain_names;
/* Create the crypto object */
$GLOBALS['egw']->crypto = CreateObject('phpgwapi.crypto');
$GLOBALS['egw']->crypto =& CreateObject('phpgwapi.crypto');
if ($GLOBALS['egw_info']['server']['usecookies'])
{
$this->phpgw_set_cookiedomain();
@ -600,26 +606,30 @@
{
$now = time();
if ($login != '')
if ($login)
{
if (strlen($login) > 30)
{
$login = substr($login,0,30);
}
$GLOBALS['egw']->db->query('INSERT INTO phpgw_access_log(sessionid,loginid,ip,li,lo,account_id)'
. " VALUES ('" . $sessionid . "','" . $this->db->db_addslashes($login). "','"
. $this->db->db_addslashes($user_ip) . "',$now,0," . (int)$account_id .')',__LINE__,__FILE__);
$GLOBALS['egw']->db->insert($this->access_table,array(
'sessionid' => $sessionid,
'loginid' => $login,
'ip' => $user_ip,
'li' => $now,
'lo' => 0,
'account_id'=> $account_id,
),__LINE__,__FILE__);
}
else
{
$GLOBALS['egw']->db->query("UPDATE phpgw_access_log SET lo=" . $now . " WHERE sessionid='"
. $sessionid . "'",__LINE__,__FILE__);
$GLOBALS['egw']->db->update($this->access_table,array('lo' => $now),array('sessionid' => $sessionid),__LINE__,__FILE__);
}
if ($GLOBALS['egw_info']['server']['max_access_log_age'])
{
$max_age = $now - $GLOBALS['egw_info']['server']['max_access_log_age'] * 24 * 60 * 60;
$GLOBALS['egw']->db->query("DELETE FROM phpgw_access_log WHERE li < $max_age");
$GLOBALS['egw']->db->delete($this->access_table,"li < $max_age",__LINE__,__FILE__);
}
}
@ -635,16 +645,22 @@
$blocked = False;
$block_time = time() - $GLOBALS['egw_info']['server']['block_time'] * 60;
$ip = $this->db->db_addslashes($ip);
$this->db->query("SELECT count(*) FROM phpgw_access_log WHERE account_id=0 AND ip='$ip' AND li > $block_time",__LINE__,__FILE__);
$this->db->select($this->access_table,'COUNT(*)',array(
'account_id = 0',
'ip' => $ip,
"li > $block_time",
),__LINE__,__FILE__);
$this->db->next_record();
if (($false_ip = $this->db->f(0)) > $GLOBALS['egw_info']['server']['num_unsuccessful_ip'])
{
//echo "<p>login_blocked: ip='$ip' ".$this->db->f(0)." trys (".$GLOBALS['egw_info']['server']['num_unsuccessful_ip']." max.) since ".date('Y/m/d H:i',$block_time)."</p>\n";
$blocked = True;
}
$login = $this->db->db_addslashes($login);
$this->db->query("SELECT count(*) FROM phpgw_access_log WHERE account_id=0 AND (loginid='$login' OR loginid LIKE '$login@%') AND li > $block_time",__LINE__,__FILE__);
$this->db->select($this->access_table,'COUNT(*)',array(
'account_id = 0',
'(loginid = '.$this->db->quote($login).' OR loginid LIKE '.$this->db->quote($login.'@%').')',
"li > $block_time",
),__LINE__,__FILE__);
$this->db->next_record();
if (($false_id = $this->db->f(0)) > $GLOBALS['egw_info']['server']['num_unsuccessful_id'])
{

View File

@ -14,7 +14,7 @@
/* Basic information about this app */
$setup_info['phpgwapi']['name'] = 'phpgwapi';
$setup_info['phpgwapi']['title'] = 'eGroupWare API';
$setup_info['phpgwapi']['version'] = '1.0.1.024';
$setup_info['phpgwapi']['version'] = '1.0.1.025';
$setup_info['phpgwapi']['versions']['current_header'] = '1.28';
$setup_info['phpgwapi']['enable'] = 3;
$setup_info['phpgwapi']['app_order'] = 1;
@ -27,7 +27,7 @@
$setup_info['phpgwapi']['tables'][] = 'egw_preferences';
$setup_info['phpgwapi']['tables'][] = 'egw_sessions';
$setup_info['phpgwapi']['tables'][] = 'egw_app_sessions';
$setup_info['phpgwapi']['tables'][] = 'phpgw_access_log';
$setup_info['phpgwapi']['tables'][] = 'egw_access_log';
$setup_info['phpgwapi']['tables'][] = 'egw_hooks';
$setup_info['phpgwapi']['tables'][] = 'egw_languages';
$setup_info['phpgwapi']['tables'][] = 'egw_lang';

View File

@ -112,7 +112,7 @@
'ix' => array(),
'uc' => array()
),
'phpgw_access_log' => array(
'egw_access_log' => array(
'fd' => array(
'sessionid' => array('type' => 'char','precision' => '32','nullable' => False),
'loginid' => array('type' => 'varchar','precision' => '64','nullable' => False),

View File

@ -861,4 +861,13 @@
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.0.1.024';
}
$test[] = '1.0.1.024';
function phpgwapi_upgrade1_0_1_024()
{
$GLOBALS['egw_setup']->oProc->RenameTable('phpgw_access_log','egw_access_log');
return $GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.0.1.025';
}
?>

View File

@ -95,6 +95,8 @@
{
$GLOBALS['egw_setup']->db->delete($table,'1=1');
}
/* Clear the access log, since these are all new users anyway */
$GLOBALS['egw_setup']->db->query('DELETE FROM egw_access_log');
}
/* Create the demo groups */
$defaultgroupid = (int)$GLOBALS['egw_setup']->add_account('Default','Default','Group',False,False);
@ -187,9 +189,6 @@
$GLOBALS['egw_setup']->add_acl('phpgw_group',$admingroupid,$accountid);
$GLOBALS['egw_setup']->add_acl('phpgw_group',$defaultgroupid,$accountid);
/* Clear the access log, since these are all new users anyway */
$GLOBALS['egw_setup']->db->query('DELETE FROM phpgw_access_log');
$GLOBALS['egw_setup']->db->transaction_commit();
Header('Location: index.php');