mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-07 08:34:42 +01:00
changed the following table-names:
- phpgw_accounts --> egw_accounts - phpgw_acl --> egw_acl - phpgw_log(_msg) --> egw_log(_msg) - phpgw_config --> egw_config - phpgw_applications --> egw_applications This requires code-changes in many apps. Quite often I was able to replace the db access, with calls to the appropreate classes.
This commit is contained in:
parent
0db87ad750
commit
c85d34c0fe
@ -38,7 +38,7 @@ else
|
||||
if (($all_accounts = $GLOBALS['egw']->accounts->search(array('type'=>'both'))))
|
||||
{
|
||||
$all_accounts = array_keys($all_accounts);
|
||||
$GLOBALS['egw']->db->query("DELETE FROM phpgw_acl WHERE acl_account NOT IN (".implode(',',$all_accounts).") OR acl_appname='phpgw_group' AND acl_location NOT IN ('".implode("','",$all_accounts)."')",__LINE__,__FILE__);
|
||||
$GLOBALS['egw']->db->query("DELETE FROM egw_acl WHERE acl_account NOT IN (".implode(',',$all_accounts).") OR acl_appname='phpgw_group' AND acl_location NOT IN ('".implode("','",$all_accounts)."')",__LINE__,__FILE__);
|
||||
$deleted = $GLOBALS['egw']->db->affected_rows();
|
||||
}
|
||||
echo '<p align="center">'.lang('%1 ACL records of not (longer) existing accounts deleted.',$deleted)."</p>\n";
|
||||
|
@ -85,14 +85,6 @@
|
||||
|
||||
$account_id = (int)$_POST['account_id'];
|
||||
|
||||
$GLOBALS['egw']->db->lock(
|
||||
Array(
|
||||
'phpgw_accounts',
|
||||
'phpgw_app_sessions',
|
||||
'phpgw_acl'
|
||||
)
|
||||
);
|
||||
|
||||
$old_group_list = $GLOBALS['egw']->acl->get_ids_for_location($account_id,1,'phpgw_group');
|
||||
|
||||
@reset($old_group_list);
|
||||
@ -115,8 +107,6 @@
|
||||
|
||||
$GLOBALS['egw']->accounts->delete($account_id);
|
||||
|
||||
$GLOBALS['egw']->db->unlock();
|
||||
|
||||
Header('Location: '.$GLOBALS['egw']->link('/index.php','menuaction=admin.uiaccounts.list_groups'));
|
||||
$GLOBALS['egw']->common->egw_exit();
|
||||
}
|
||||
@ -141,18 +131,11 @@
|
||||
|
||||
$singleHookValues = $GLOBALS['hook_values']+array('location' => 'deleteaccount');
|
||||
|
||||
$db = clone($GLOBALS['egw']->db);
|
||||
$db->query('SELECT app_name,app_order FROM phpgw_applications WHERE app_enabled!=0 ORDER BY app_order',__LINE__,__FILE__);
|
||||
if($db->num_rows())
|
||||
foreach($GLOBALS['egw_info']['apps'] as $appname => $data)
|
||||
{
|
||||
while($db->next_record())
|
||||
if($appname != 'admin' && $appname != 'preferences')
|
||||
{
|
||||
$appname = $db->f('app_name');
|
||||
|
||||
if($appname <> 'admin' || $appname <> 'preferences')
|
||||
{
|
||||
$GLOBALS['egw']->hooks->single($singleHookValues, $appname);
|
||||
}
|
||||
$GLOBALS['egw']->hooks->single($singleHookValues,$appname);
|
||||
}
|
||||
}
|
||||
|
||||
@ -213,19 +196,6 @@
|
||||
|
||||
$this->validate_group($group_info);
|
||||
|
||||
$GLOBALS['egw']->db->lock(
|
||||
Array(
|
||||
'phpgw_accounts',
|
||||
'phpgw_nextid',
|
||||
'phpgw_preferences',
|
||||
'phpgw_sessions',
|
||||
'phpgw_acl',
|
||||
'phpgw_applications',
|
||||
'phpgw_app_sessions',
|
||||
'phpgw_hooks'
|
||||
)
|
||||
);
|
||||
|
||||
$group =& CreateObject('phpgwapi.accounts',$group_info['account_id'],'g');
|
||||
$group->acct_type = 'g';
|
||||
$account_info = array(
|
||||
@ -291,8 +261,6 @@
|
||||
{
|
||||
$cd = 37;
|
||||
}
|
||||
|
||||
$GLOBALS['egw']->db->unlock();
|
||||
}
|
||||
ExecMethod('admin.uiaccounts.list_groups');
|
||||
|
||||
@ -430,20 +398,6 @@
|
||||
|
||||
$this->validate_group($group_info);
|
||||
|
||||
// Lock tables
|
||||
$GLOBALS['egw']->db->lock(
|
||||
Array(
|
||||
'phpgw_accounts',
|
||||
'phpgw_preferences',
|
||||
'phpgw_config',
|
||||
'phpgw_applications',
|
||||
'phpgw_hooks',
|
||||
'phpgw_sessions',
|
||||
'phpgw_acl',
|
||||
'phpgw_app_sessions'
|
||||
)
|
||||
);
|
||||
|
||||
$group =& CreateObject('phpgwapi.accounts',$group_info['account_id'],'g');
|
||||
$old_group_info = $group->read_repository();
|
||||
|
||||
@ -547,8 +501,6 @@
|
||||
// for LDAP to update the memberuid attribute
|
||||
$group->save_repository();
|
||||
|
||||
$GLOBALS['egw']->db->unlock();
|
||||
|
||||
ExecMethod('admin.uiaccounts.list_groups');
|
||||
return False;
|
||||
}
|
||||
|
@ -27,19 +27,6 @@
|
||||
$userData['account_email'] = $userData['email'];
|
||||
}
|
||||
|
||||
$GLOBALS['egw']->db->lock(
|
||||
Array(
|
||||
'phpgw_accounts',
|
||||
'phpgw_nextid',
|
||||
'phpgw_preferences',
|
||||
'phpgw_sessions',
|
||||
'phpgw_acl',
|
||||
'phpgw_applications',
|
||||
'phpgw_app_sessions',
|
||||
'phpgw_hooks'
|
||||
)
|
||||
);
|
||||
|
||||
$GLOBALS['egw']->accounts->create($userData);
|
||||
|
||||
$userData['account_id'] = $GLOBALS['egw']->accounts->name2id($userData['account_lid']);
|
||||
@ -104,8 +91,6 @@
|
||||
$apps->account_apps = array(array());
|
||||
$apps_after = array(array());
|
||||
|
||||
$GLOBALS['egw']->db->unlock();
|
||||
|
||||
return $userData['account_id'];
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,8 @@
|
||||
class soapplications
|
||||
{
|
||||
var $db;
|
||||
var $applications_table = 'egw_applications';
|
||||
var $hooks_table = 'phpgw_hooks';
|
||||
|
||||
function soapplications()
|
||||
{
|
||||
@ -22,7 +24,7 @@
|
||||
|
||||
function read($app_name)
|
||||
{
|
||||
$sql = "SELECT * FROM phpgw_applications WHERE app_name='$app_name'";
|
||||
$sql = "SELECT * FROM $this->applications_table WHERE app_name='$app_name'";
|
||||
|
||||
$this->db->query($sql,__LINE__,__FILE__);
|
||||
$this->db->next_record();
|
||||
@ -38,7 +40,7 @@
|
||||
|
||||
function get_list()
|
||||
{
|
||||
$this->db->query('SELECT * FROM phpgw_applications WHERE app_enabled!=3',__LINE__,__FILE__);
|
||||
$this->db->query("SELECT * FROM $this->applications_table WHERE app_enabled != 3",__LINE__,__FILE__);
|
||||
if($this->db->num_rows())
|
||||
{
|
||||
while ($this->db->next_record())
|
||||
@ -64,11 +66,11 @@
|
||||
/* Yes, the sequence should work, but after a mass import in setup (new install)
|
||||
it does not work on pg
|
||||
*/
|
||||
$sql = 'SELECT MAX(app_id) from phpgw_applications';
|
||||
$sql = "SELECT MAX(app_id) from $this->applications_table";
|
||||
$this->db->query($sql,__LINE__,__FILE__);
|
||||
$this->db->next_record();
|
||||
$app_id = $this->db->f(0) + 1;
|
||||
$sql = 'INSERT INTO phpgw_applications (app_id,app_name,app_enabled,app_order) VALUES('
|
||||
$sql = "INSERT INTO $this->applications_table (app_id,app_name,app_enabled,app_order) VALUES("
|
||||
. $app_id . ",'" . addslashes($data['n_app_name']) . "','"
|
||||
. $data['n_app_status'] . "','" . $data['app_order'] . "')";
|
||||
|
||||
@ -78,7 +80,7 @@
|
||||
|
||||
function save($data)
|
||||
{
|
||||
$sql = "UPDATE phpgw_applications SET "
|
||||
$sql = "UPDATE $this->applications_table SET "
|
||||
. "app_enabled='" . $data['n_app_status'] . "',app_order='" . $data['app_order']
|
||||
. "' WHERE app_name='" . $data['app_name'] . "'";
|
||||
|
||||
@ -88,7 +90,7 @@
|
||||
|
||||
function exists($app_name)
|
||||
{
|
||||
$this->db->query("SELECT COUNT(app_name) FROM phpgw_applications WHERE app_name='" . addslashes($app_name) . "'",__LINE__,__FILE__);
|
||||
$this->db->query("SELECT COUNT(app_name) FROM $this->applications_table WHERE app_name='" . addslashes($app_name) . "'",__LINE__,__FILE__);
|
||||
$this->db->next_record();
|
||||
|
||||
if ($this->db->f(0) != 0)
|
||||
@ -100,19 +102,19 @@
|
||||
|
||||
function app_order()
|
||||
{
|
||||
$this->db->query('SELECT (MAX(app_order)+1) FROM phpgw_applications',__LINE__,__FILE__);
|
||||
$this->db->query("SELECT MAX(app_order)+1 FROM $this->applications_table",__LINE__,__FILE__);
|
||||
$this->db->next_record();
|
||||
return $this->db->f(0);
|
||||
}
|
||||
|
||||
function delete($app_name)
|
||||
{
|
||||
$this->db->query("DELETE FROM phpgw_applications WHERE app_name='$app_name'",__LINE__,__FILE__);
|
||||
$this->db->query("DELETE FROM $this->applications_table WHERE app_name='$app_name'",__LINE__,__FILE__);
|
||||
}
|
||||
|
||||
function register_hook($app)
|
||||
{
|
||||
$this->db->query("INSERT INTO phpgw_hooks(hook_appname,hook_location,hook_filename) "
|
||||
$this->db->query("INSERT INTO $this->hooks_table (hook_appname,hook_location,hook_filename) "
|
||||
. "VALUES ('".$app['app_name']."','".$app['hook']."','hook_".$app['hook'].".inc.php')",__LINE__,__FILE__
|
||||
);
|
||||
}
|
||||
|
@ -156,11 +156,11 @@
|
||||
#print "<br>DN: $accountDN<br>";
|
||||
ldap_mod_replace ($ldap, $accountDN, $newData);
|
||||
|
||||
// also update the account_email field in phpgw_accounts
|
||||
// also update the account_email field in egw_accounts
|
||||
// when using sql account storage
|
||||
if($GLOBALS['egw_info']['server']['account_repository'] == 'sql')
|
||||
{
|
||||
$this->db->update('phpgw_accounts',array(
|
||||
$this->db->update('egw_accounts',array(
|
||||
'account_email' => $_accountData["mail"]
|
||||
),
|
||||
array(
|
||||
|
@ -17,6 +17,9 @@
|
||||
class solog
|
||||
{
|
||||
var $db;
|
||||
var $accounts_table = 'egw_accounts';
|
||||
var $log_table = 'egw_log';
|
||||
var $msg_table = 'egw_log_msg';
|
||||
var $owner;
|
||||
var $error_cols = '';
|
||||
var $error_cols_e = '';
|
||||
@ -38,16 +41,16 @@
|
||||
{
|
||||
$this->error_cols = array();
|
||||
|
||||
/* fields from phpgw_log table */
|
||||
$clist = $this->db->metadata('phpgw_log');
|
||||
/* fields from log table */
|
||||
$clist = $this->db->metadata($this->log_table);
|
||||
for ($i=0; $i<count($clist); $i++)
|
||||
{
|
||||
$name = $clist[$i]['name'];
|
||||
$this->error_cols[$name] = array();
|
||||
}
|
||||
|
||||
/* fields from phpgw_log_msg table */
|
||||
$clist = $this->db->metadata('phpgw_log_msg');
|
||||
/* fields from msg table */
|
||||
$clist = $this->db->metadata($this->msg_table);
|
||||
for ($i=0; $i<count($clist); $i++)
|
||||
{
|
||||
$name = $clist[$i]['name'];
|
||||
@ -64,8 +67,8 @@
|
||||
/* Get Columns for Errors */
|
||||
$this->error_cols_e = $this->get_error_cols();
|
||||
|
||||
/* Enhance with Columns for phpgw_accounts */
|
||||
$clist = $this->db->metadata('phpgw_accounts');
|
||||
/* Enhance with Columns from accounts-table */
|
||||
$clist = $this->db->metadata($this->accounts_table);
|
||||
for ($i=0; $i<count($clist); $i++)
|
||||
{
|
||||
$name = $clist[$i]['name'];
|
||||
@ -81,21 +84,21 @@
|
||||
/* Fixed From */
|
||||
if (!isset($parms['from']))
|
||||
{
|
||||
$parms['from'] = array('phpgw_accounts');
|
||||
$parms['from'] = array($this->accounts_table);
|
||||
}
|
||||
else
|
||||
{
|
||||
$parms['from'][] = 'phpgw_accounts';
|
||||
$parms['from'][] = $this->accounts_table;
|
||||
}
|
||||
|
||||
/* Fix Where */
|
||||
if (!isset($parms['where']))
|
||||
{
|
||||
$parms['where'] = array('phpgw_log.log_user = phpgw_accounts.account_id');
|
||||
$parms['where'] = array("$this->log_table.log_user = $this->accounts_table.account_id");
|
||||
}
|
||||
else
|
||||
{
|
||||
$parms['where'][] = 'phpgw_log.log_user = phpgw_accounts.account_id';
|
||||
$parms['where'][] = "$this->log_table.log_user = $this->accounts_table.account_id";
|
||||
}
|
||||
|
||||
/* Fix Default Fields */
|
||||
@ -110,9 +113,9 @@
|
||||
function get_no_errors()
|
||||
{
|
||||
/* Get max ErrorId */
|
||||
$this->db->query("select count(*) as max_id from phpgw_log, phpgw_log_msg WHERE phpgw_log.log_id = phpgw_log_msg.log_msg_log_id",__LINE__,__FILE__);
|
||||
$this->db->next_record();
|
||||
return $this->db->f('max_id');
|
||||
$this->db->query("select count(*) as max_id from $this->log_table, $this->msg_table WHERE $this->log_table.log_id = $this->msg_table.log_msg_log_id",__LINE__,__FILE__);
|
||||
|
||||
return $this->db->next_record() ? $this->db->f('max_id') : 0;
|
||||
}
|
||||
|
||||
function get_error($parms)
|
||||
@ -124,24 +127,24 @@
|
||||
$fields = $parms['fields'];
|
||||
|
||||
/* Build From_Clause */
|
||||
$from_clause = 'FROM phpgw_log, phpgw_log_msg ';
|
||||
$from_clause = "FROM $this->log_table , $this->msg_table ";
|
||||
if (isset($from))
|
||||
{
|
||||
$from[] = 'phpgw_log';
|
||||
$from[] = 'phpgw_log_msg';
|
||||
$from[] = $this->log_table;
|
||||
$from[] = $this->msg_table;
|
||||
$from_clause = 'FROM '.implode(', ' , $from).' ';
|
||||
}
|
||||
|
||||
/* Build Where_Clause */
|
||||
$where_clause = 'WHERE phpgw_log.log_id = phpgw_log_msg.log_msg_log_id ';
|
||||
$where_clause = "WHERE $this->log_table.log_id = $this->msg_table.log_msg_log_id ";
|
||||
if (isset($where))
|
||||
{
|
||||
$where[] = 'phpgw_log.log_id = phpgw_log_msg.log_msg_log_id';
|
||||
$where[] = "$this->log_table.log_id = $this->msg_table.log_msg_log_id";
|
||||
$where_clause = 'WHERE ' . implode(' AND ',$where) . ' ';
|
||||
}
|
||||
|
||||
/* Build Order_By_Clause */
|
||||
$orderby_clause = 'ORDER BY phpgw_log.log_id, phpgw_log_msg.log_msg_seq_no ';
|
||||
$orderby_clause = "ORDER BY $this->log_table.log_id, $this->msg_table.log_msg_seq_no ";
|
||||
if (isset($orderby))
|
||||
{
|
||||
$orderby_clause = 'ORDER BY ' . implode(', ',$orderby);
|
||||
@ -155,20 +158,11 @@
|
||||
|
||||
$rows = array();
|
||||
|
||||
/* Do Select */
|
||||
@reset($fields);
|
||||
while(list($key,$val) = @each($fields))
|
||||
{
|
||||
$fkeys .= $key . ',';
|
||||
}
|
||||
$fkeys = substr($fkeys,0,-1);
|
||||
|
||||
$select = 'SELECT ' . $fkeys . ' ' . $from_clause . $where_clause . $orderby_clause;
|
||||
$select = 'SELECT ' . implode(',',array_keys($fields)) . ' ' . $from_clause . $where_clause . $orderby_clause;
|
||||
$this->db->query($select,__LINE__,__FILE__);
|
||||
while($this->db->next_record())
|
||||
{
|
||||
reset($fields);
|
||||
while(list($fname,$fopt) = each($fields))
|
||||
foreach($fields as $fname => $fopt)
|
||||
{
|
||||
$this_row[$fname]['value'] = $this->db->f($fname);
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ if($GLOBALS['egw_info']['flags']['currentapp'] != 'home' &&
|
||||
{
|
||||
$_returnhtml = array();
|
||||
$app_name = $GLOBALS['egw_info']['flags']['currentapp'];
|
||||
$GLOBALS['egw']->db->query("SELECT app_name,app_version FROM phpgw_applications WHERE app_name='$app_name' OR app_name='phpgwapi'",__LINE__,__FILE__);
|
||||
$GLOBALS['egw']->db->query("SELECT app_name,app_version FROM egw_applications WHERE app_name='$app_name' OR app_name='phpgwapi'",__LINE__,__FILE__);
|
||||
while($GLOBALS['egw']->db->next_record())
|
||||
{
|
||||
$_db_version = $GLOBALS['egw']->db->f('app_version');
|
||||
|
@ -15,9 +15,5 @@
|
||||
if((int)$GLOBALS['hook_values']['account_id'] > 0)
|
||||
{
|
||||
$GLOBALS['egw']->accounts->delete((int)$GLOBALS['hook_values']['account_id']);
|
||||
$GLOBALS['egw']->db->lock(Array('phpgw_acl'));
|
||||
$GLOBALS['egw']->db->query("DELETE FROM phpgw_acl WHERE acl_location='" . (int)$GLOBALS['hook_values']['account_id']
|
||||
. "' OR acl_account=".(int)$GLOBALS['hook_values']['account_id'],__LINE__,__FILE__);
|
||||
$GLOBALS['egw']->db->unlock();
|
||||
$GLOBALS['egw']->acl->delete_account((int)$GLOBALS['hook_values']['account_id']);
|
||||
}
|
||||
?>
|
||||
|
@ -42,10 +42,8 @@ class updates {
|
||||
function showUpdates() {
|
||||
$updates = array();
|
||||
|
||||
if ((isset($GLOBALS['egw_info']['user']['apps']['admin']) &&
|
||||
$GLOBALS['egw_info']['user']['apps']['admin']) &&
|
||||
(isset($GLOBALS['egw_info']['server']['checkfornewversion']) &&
|
||||
$GLOBALS['egw_info']['server']['checkfornewversion']))
|
||||
if (isset($GLOBALS['egw_info']['user']['apps']['admin']) && $GLOBALS['egw_info']['user']['apps']['admin'] &&
|
||||
isset($GLOBALS['egw_info']['server']['checkfornewversion']) && $GLOBALS['egw_info']['server']['checkfornewversion'])
|
||||
{
|
||||
|
||||
$GLOBALS['egw']->network =& CreateObject('phpgwapi.network');
|
||||
@ -62,16 +60,14 @@ class updates {
|
||||
|
||||
if($GLOBALS['egw']->common->cmp_version_long($GLOBALS['egw_info']['server']['versions']['phpgwapi'],$line_found[1]))
|
||||
{
|
||||
$updates['egroupware'] = '<p>There is a new version of eGroupWare available. <a href="'
|
||||
. 'http://www.egroupware.org">http://www.egroupware.org</a></p>';
|
||||
$updates['egroupware'] = '<p>'.lang('There is a new version of eGroupWare available').
|
||||
' <a href="http://www.egroupware.org">www.egroupware.org</a></p>';
|
||||
}
|
||||
|
||||
$_found = False;
|
||||
$GLOBALS['egw']->db->query("select app_name,app_version from phpgw_applications",__LINE__,__FILE__);
|
||||
while($GLOBALS['egw']->db->next_record())
|
||||
foreach($GLOBALS['egw_info']['apps'] as $_app_name => $data)
|
||||
{
|
||||
$_db_version = $GLOBALS['egw']->db->f('app_version');
|
||||
$_app_name = $GLOBALS['egw']->db->f('app_name');
|
||||
$_db_version = $data['version'];
|
||||
$_app_dir = $GLOBALS['egw']->common->get_app_dir($_app_name);
|
||||
$_versionfile = $_app_dir . '/setup/setup.inc.php';
|
||||
if($_app_dir && file_exists($_versionfile))
|
||||
@ -102,7 +98,4 @@ class updates {
|
||||
}
|
||||
return $updates;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
@ -40,10 +40,10 @@
|
||||
include_once(EGW_API_INC . '/class.accounts_' . $GLOBALS['egw_info']['server']['account_repository'] . '.inc.php');
|
||||
|
||||
/*
|
||||
Dont know where to put this (seek3r)
|
||||
This is where it belongs (jengo)
|
||||
This is where it ended up (milosch)
|
||||
Moved again at least temporarily since sql and ldap use it.
|
||||
Dont know where to put this (seek3r)
|
||||
This is where it belongs (jengo)
|
||||
This is where it ended up (milosch)
|
||||
Moved again at least temporarily since sql and ldap use it.
|
||||
*/
|
||||
$GLOBALS['egw_info']['server']['global_denied_users'] = array(
|
||||
'root' => True, 'bin' => True, 'daemon' => True,
|
||||
|
@ -1,27 +1,27 @@
|
||||
<?php
|
||||
/**************************************************************************\
|
||||
* eGroupWare API - Accounts manager for the contacts class *
|
||||
* This file written by Miles Lott <milosch@groupwhere.org> *
|
||||
* View and manipulate account records using the contacts class *
|
||||
* Copyright (C) 2000, 2001 Miles Lott *
|
||||
* -------------------------------------------------------------------------*
|
||||
* This library is part of the eGroupWare API *
|
||||
* http://www.egroupware.org/api *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as published by *
|
||||
* the Free Software Foundation; either version 2.1 of the License, *
|
||||
* or any later version. *
|
||||
* This library is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU Lesser General Public License for more details. *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with this library; if not, write to the Free Software Foundation, *
|
||||
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
||||
\**************************************************************************/
|
||||
/**************************************************************************\
|
||||
* eGroupWare API - Accounts manager for the contacts class *
|
||||
* This file written by Miles Lott <milosch@groupwhere.org> *
|
||||
* View and manipulate account records using the contacts class *
|
||||
* Copyright (C) 2000, 2001 Miles Lott *
|
||||
* -------------------------------------------------------------------------*
|
||||
* This library is part of the eGroupWare API *
|
||||
* http://www.egroupware.org/api *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as published by *
|
||||
* the Free Software Foundation; either version 2.1 of the License, *
|
||||
* or any later version. *
|
||||
* This library is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU Lesser General Public License for more details. *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with this library; if not, write to the Free Software Foundation, *
|
||||
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
||||
\**************************************************************************/
|
||||
|
||||
/* $Id$ */
|
||||
/* $Id$ */
|
||||
|
||||
|
||||
/*
|
||||
@ -291,47 +291,55 @@
|
||||
$expiredate = time() + ( ( 60 * 60 ) * (30 * 24) );
|
||||
}
|
||||
|
||||
$default_group_id = $this->name2id($GLOBALS['egw_info']['server']['default_group_lid']);
|
||||
if (!$default_group_id)
|
||||
{
|
||||
$default_group_id = (int) $this->name2id('Default');
|
||||
}
|
||||
$primary_group = $GLOBALS['auto_create_acct']['primary_group'] &&
|
||||
$this->get_type((int)$GLOBALS['auto_create_acct']['primary_group']) == 'g' ?
|
||||
(int) $GLOBALS['auto_create_acct']['primary_group'] : $default_group_id;
|
||||
|
||||
$acct_info = array(
|
||||
'account_lid' => $accountname,
|
||||
'account_type' => 'u',
|
||||
'account_passwd' => $passwd,
|
||||
'account_firstname' => '',
|
||||
'account_lastname' => '',
|
||||
'account_firstname' => $GLOBALS['auto_create_acct']['firstname'] ? $GLOBALS['auto_create_acct']['firstname'] : 'New',
|
||||
'account_lastname' => $GLOBALS['auto_create_acct']['lastname'] ? $GLOBALS['auto_create_acct']['lastname'] : 'User',
|
||||
'account_status' => $account_status,
|
||||
'account_expires' => mktime(2,0,0,date('n',$expiredate), (int)date('d',$expiredate), date('Y',$expiredate))
|
||||
'account_expires' => mktime(2,0,0,date('n',$expiredate), (int)date('d',$expiredate), date('Y',$expiredate)),
|
||||
'account_primary_group' => $primary_group,
|
||||
);
|
||||
if (isset($GLOBALS['auto_create_acct']['email']) == True && $GLOBALS['auto_create_acct']['email'] != '')
|
||||
{
|
||||
$acct_info['account_email'] = $GLOBALS['auto_create_acct']['email'];
|
||||
}
|
||||
elseif(isset($GLOBALS['egw_info']['server']['mail_suffix']) == True && $GLOBALS['egw_info']['server']['mail_suffix'] != '')
|
||||
{
|
||||
$acct_info['account_email'] = $accountname . '@' . $GLOBALS['egw_info']['server']['mail_suffix'];
|
||||
}
|
||||
|
||||
$this->create($acct_info);
|
||||
$accountid = $this->name2id($accountname);
|
||||
|
||||
$this->db->transaction_begin();
|
||||
if (!$default_prefs)
|
||||
if ($accountid)
|
||||
{
|
||||
$default_prefs = 'a:5:{s:6:"common";a:10:{s:9:"maxmatchs";s:2:"15";s:12:"template_set";s:8:"verdilak";s:5:"theme";s:6:"purple";s:13:"navbar_format";s:5:"icons";s:9:"tz_offset";N;s:10:"dateformat";s:5:"m/d/Y";s:10:"timeformat";s:2:"12";s:4:"lang";s:2:"en";s:11:"default_app";N;s:8:"currency";s:1:"$";}s:11:"addressbook";a:1:{s:0:"";s:4:"True";}:s:8:"calendar";a:4:{s:13:"workdaystarts";s:1:"7";s:11:"workdayends";s:2:"15";s:13:"weekdaystarts";s:6:"Monday";s:15:"defaultcalendar";s:9:"month.php";}}';
|
||||
// $defaultprefs = 'a:5:{s:6:"common";a:1:{s:0:"";s:2:"en";}s:11:"addressbook";a:1:{s:0:"";s:4:"True";}s:8:"calendar";a:1:{s:0:"";s:13:"workdaystarts";}i:15;a:1:{s:0:"";s:11:"workdayends";}s:6:"Monday";a:1:{s:0:"";s:13:"weekdaystarts";}}';
|
||||
$this->db->query("insert into phpgw_preferences (preference_owner, preference_value) values ('".$accountid."', '$default_prefs')",__LINE__,__FILE__);
|
||||
}
|
||||
|
||||
if (!$default_acls)
|
||||
{
|
||||
$apps = Array(
|
||||
'addressbook',
|
||||
'calendar',
|
||||
'email',
|
||||
'notes',
|
||||
'todo',
|
||||
'phpwebhosting',
|
||||
'manual'
|
||||
);
|
||||
|
||||
$this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_rights)values('preferences', 'changepassword', ".$accountid.", 1)",__LINE__,__FILE__);
|
||||
$this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_rights) values('phpgw_group', '1', ".$accountid.", 1)",__LINE__,__FILE__);
|
||||
@reset($apps);
|
||||
while(list($key,$app) = each($apps))
|
||||
/* If we have a primary_group, add it as "regular" eGW group (via ACL) too. */
|
||||
if ($primary_group)
|
||||
{
|
||||
$this->db->query("INSERT INTO phpgw_acl (acl_appname, acl_location, acl_account, acl_rights) VALUES ('".$app."', 'run', ".$accountid.", 1)",__LINE__,__FILE__);
|
||||
$GLOBALS['egw']->acl->add_repository('phpgw_group', $primary_group,$accountid,1);
|
||||
}
|
||||
// call hook to notify other apps about the new account
|
||||
$GLOBALS['hook_values']['account_lid'] = $acct_info['account_lid'];
|
||||
$GLOBALS['hook_values']['account_id'] = $accountid;
|
||||
$GLOBALS['hook_values']['new_passwd'] = $acct_info['account_passwd'];
|
||||
$GLOBALS['hook_values']['account_status'] = $acct_info['account_status'];
|
||||
$GLOBALS['hook_values']['account_firstname'] = $acct_info['account_firstname'];
|
||||
$GLOBALS['hook_values']['account_lastname'] = $acct_info['account_lastname'];
|
||||
$GLOBALS['egw']->hooks->process($GLOBALS['hook_values']+array(
|
||||
'location' => 'addaccount'
|
||||
),False,True); /* called for every app now, not only enabled ones */
|
||||
}
|
||||
$this->db->transaction_commit();
|
||||
return $accountid;
|
||||
}
|
||||
}
|
||||
|
@ -282,7 +282,7 @@
|
||||
ldap_add($this->ds, $newDN, $newData);
|
||||
}
|
||||
/* Normal behavior for save_repository
|
||||
update Account */
|
||||
update Account */
|
||||
else
|
||||
{
|
||||
// add the list group members
|
||||
@ -1007,15 +1007,10 @@
|
||||
{
|
||||
if($primary_group)
|
||||
{
|
||||
$this->db->query("INSERT INTO phpgw_acl (acl_appname, acl_location, acl_account, acl_rights) VALUES('phpgw_group', "
|
||||
. $primary_group . ", " . $accountid . ", 1)",__LINE__,__FILE__);
|
||||
$GLOBALS['egw']->acl->add_repository('phpgw_group', $primary_group,$accountid,1);
|
||||
}
|
||||
|
||||
/* FIXME - we are assuming the auth method is capable of password changing
|
||||
* $this->db->query("INSERT INTO phpgw_acl (acl_appname, acl_location, acl_account, acl_rights)VALUES('preferences', 'changepassword', ".$accountid.", 1)",__LINE__,__FILE__);
|
||||
*/
|
||||
|
||||
/* if we have an mail address set it in the uesrs' email preference */
|
||||
/* if we have an mail address set it in the users' email preference */
|
||||
if (isset($GLOBALS['auto_create_acct']['email']) && $GLOBALS['auto_create_acct']['email'] != '')
|
||||
{
|
||||
$GLOBALS['egw']->acl->acl($accountid); /* needed als preferences::save_repository calls acl */
|
||||
@ -1037,7 +1032,7 @@
|
||||
/* commit the new account transaction */
|
||||
$this->db->transaction_commit();
|
||||
|
||||
/* does anyone know what the heck this is required for? */
|
||||
// call hook to notify interested apps about the new account
|
||||
$GLOBALS['hook_values']['account_lid'] = $acct_info['account_lid'];
|
||||
$GLOBALS['hook_values']['account_id'] = $accountid;
|
||||
$GLOBALS['hook_values']['new_passwd'] = $acct_info['account_passwd'];
|
||||
@ -1101,4 +1096,25 @@
|
||||
|
||||
return $allValues[0]['dn'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the last login timestamps and the IP
|
||||
*
|
||||
* @param int $account_id
|
||||
* @param string $ip
|
||||
* @return int lastlogin time
|
||||
*/
|
||||
function update_lastlogin($_account_id, $ip)
|
||||
{
|
||||
$entry['phpgwaccountlastlogin'] = time();
|
||||
$entry['phpgwaccountlastloginfrom'] = $ip;
|
||||
|
||||
$sri = ldap_search($this->ds, $GLOBALS['egw_info']['server']['ldap_context'], 'uidnumber=' . (int)$_account_id);
|
||||
$allValues = ldap_get_entries($ds, $sri);
|
||||
|
||||
$dn = $allValues[0]['dn'];
|
||||
@ldap_modify($ds, $dn, $entry);
|
||||
|
||||
return $allValues[0]['phpgwaccountlastlogin'][0];
|
||||
}
|
||||
}
|
||||
|
@ -26,9 +26,7 @@
|
||||
/* $Id$ */
|
||||
|
||||
/**
|
||||
* @class_start accounts
|
||||
* Class for handling user and group accounts
|
||||
*
|
||||
* Class for handling user and group accounts
|
||||
*/
|
||||
class accounts_
|
||||
{
|
||||
@ -40,7 +38,7 @@
|
||||
function accounts_()
|
||||
{
|
||||
$this->db = clone($GLOBALS['egw']->db);
|
||||
$this->table = 'phpgw_accounts';
|
||||
$this->table = 'egw_accounts';
|
||||
$this->db->set_app('phpgwapi'); // to load the right table-definitions for insert, select, update, ...
|
||||
}
|
||||
|
||||
@ -224,8 +222,7 @@
|
||||
);
|
||||
}
|
||||
$this->db->query("SELECT count(*) FROM $this->table $whereclause");
|
||||
$this->db->next_record();
|
||||
$this->total = $this->db->f(0);
|
||||
$this->total = $this->db->next_record() ? $this->db->f(0) : 0;
|
||||
|
||||
return $accounts;
|
||||
}
|
||||
@ -392,11 +389,10 @@
|
||||
/* If we have a primary_group, add it as "regular" eGW group (via ACL) too. */
|
||||
if ($primary_group)
|
||||
{
|
||||
$this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_rights) values('phpgw_group', "
|
||||
. $primary_group . ', ' . $accountid . ', 1)',__LINE__,__FILE__);
|
||||
$GLOBALS['egw']->acl->add_repository('phpgw_group', $primary_group,$accountid,1);
|
||||
}
|
||||
|
||||
/* if we have an mail address set it in the uesrs' email preference */
|
||||
/* if we have an mail address set it in the users' email preference */
|
||||
if (isset($GLOBALS['auto_create_acct']['email']) && $GLOBALS['auto_create_acct']['email'] != '')
|
||||
{
|
||||
$GLOBALS['egw']->acl->acl($accountid); /* needed als preferences::save_repository calls acl */
|
||||
@ -418,7 +414,7 @@
|
||||
/* commit the new account transaction */
|
||||
$this->db->transaction_commit();
|
||||
|
||||
/* does anyone know what the heck this is required for? */
|
||||
// call hook to notify interested apps about the new account
|
||||
$GLOBALS['hook_values']['account_lid'] = $acct_info['account_lid'];
|
||||
$GLOBALS['hook_values']['account_id'] = $accountid;
|
||||
$GLOBALS['hook_values']['new_passwd'] = $acct_info['account_passwd'];
|
||||
@ -456,7 +452,26 @@
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the last login timestamps and the IP
|
||||
*
|
||||
* @param int $account_id
|
||||
* @param string $ip
|
||||
* @return int lastlogin time
|
||||
*/
|
||||
function update_lastlogin($account_id, $ip)
|
||||
{
|
||||
$this->db->select($this->table,'account_lastlogin',array('account_id'=>$account_id),__LINE__,__FILE__);
|
||||
$previous_login = $this->db->next_record() ? $this->db->f('account_lastlogin') : false;
|
||||
|
||||
$this->db->update($this->table,array(
|
||||
'account_lastloginfrom' => $ip,
|
||||
'account_lastlogin' => time(),
|
||||
),array(
|
||||
'account_id' => $account_id,
|
||||
),__LINE__,__FILE__);
|
||||
|
||||
return $previous_login;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @class_end accounts
|
||||
*/
|
||||
|
@ -59,7 +59,7 @@
|
||||
/**
|
||||
* @var string $table_name name of the acl_table
|
||||
*/
|
||||
var $table_name = 'phpgw_acl';
|
||||
var $table_name = 'egw_acl';
|
||||
|
||||
/**
|
||||
* ACL constructor for setting account id
|
||||
@ -317,7 +317,8 @@
|
||||
* get specific rights for this->account_id for an app location
|
||||
*
|
||||
* @param string $location app location
|
||||
* @param string $appname optional defaults to currentapp
|
||||
* @param string $appname='' optional defaults to currentapp
|
||||
* @param int $account_id=0 optional defaults to $this->account_id
|
||||
* @return int $rights
|
||||
*/
|
||||
function get_specific_rights($location, $appname = '')
|
||||
@ -427,6 +428,84 @@
|
||||
|
||||
return $this->db->affected_rows();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get rights for a given account, location and application
|
||||
*
|
||||
* @param int $account_id
|
||||
* @param string $location
|
||||
* @param string $appname='' defaults to current app
|
||||
* @return int/boolean rights or false if none exist
|
||||
*/
|
||||
function get_specific_rights_for_account($account_id,$location,$appname='')
|
||||
{
|
||||
if (!$appname) $appname = $GLOBALS['egw_info']['flags']['currentapp'];
|
||||
|
||||
$this->db->select($this->table_name,'acl_rights',array(
|
||||
'acl_location' => $location,
|
||||
'acl_account' => $account_id,
|
||||
'acl_appname' => $appname,
|
||||
),__LINE__,__FILE__);
|
||||
|
||||
return $this->db->next_record() ? $this->db->f('acl_rights') : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all rights for a given location and application
|
||||
*
|
||||
* @param string $location
|
||||
* @param string $appname='' defaults to current app
|
||||
* @return array with account => rights pairs
|
||||
*/
|
||||
function get_all_rights($location,$appname='')
|
||||
{
|
||||
if (!$appname) $appname = $GLOBALS['egw_info']['flags']['currentapp'];
|
||||
|
||||
$this->db->select($this->table_name,'acl_account,acl_rights',array(
|
||||
'acl_location' => $location,
|
||||
'acl_appname' => $appname,
|
||||
),__LINE__,__FILE__);
|
||||
|
||||
$rights = array();
|
||||
while($this->db->next_record())
|
||||
{
|
||||
$rights[$this->db->f('acl_account')] = $this->db->f('acl_rights');
|
||||
}
|
||||
return $rights;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the rights for all locations
|
||||
*
|
||||
* @param int $account_id
|
||||
* @param string $appname='' defaults to current app
|
||||
* @param boolean $use_memberships=true
|
||||
* @return array with location => rights pairs
|
||||
*/
|
||||
function get_all_location_rights($account_id,$appname='',$use_memberships=true)
|
||||
{
|
||||
if (!$appname) $appname = $GLOBALS['egw_info']['flags']['currentapp'];
|
||||
|
||||
$acounts = array($account_id);
|
||||
if ($use_memberships)
|
||||
{
|
||||
foreach((array)$GLOBALS['egw']->accounts->membership($account_id) as $group)
|
||||
{
|
||||
$accounts[] = $group['account_id'];
|
||||
}
|
||||
}
|
||||
$this->db->select($this->table_name,'acl_location,acl_rights',array(
|
||||
'acl_account' => $accounts,
|
||||
'acl_appname' => $appname,
|
||||
),__LINE__,__FILE__);
|
||||
|
||||
$rights = array();
|
||||
while($this->db->next_record())
|
||||
{
|
||||
$rights[$this->db->f('acl_location')] |= $this->db->f('acl_rights');
|
||||
}
|
||||
return $rights;
|
||||
}
|
||||
|
||||
/**
|
||||
* get application list for an account id
|
||||
|
@ -22,16 +22,17 @@
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
/*!
|
||||
@class applications
|
||||
@abstract functions for managing and installing apps
|
||||
@discussion Author: skeeter
|
||||
*/
|
||||
/**
|
||||
* functions for managing and installing apps
|
||||
*
|
||||
* Author: skeeter
|
||||
*/
|
||||
class applications
|
||||
{
|
||||
var $account_id;
|
||||
var $data = Array();
|
||||
var $db;
|
||||
var $table_name = 'egw_applications';
|
||||
var $public_functions = array(
|
||||
'list_methods' => True,
|
||||
'read' => True
|
||||
@ -42,14 +43,16 @@
|
||||
* Standard constructor for setting $this->account_id *
|
||||
\**************************************************************************/
|
||||
|
||||
/*!
|
||||
@function applications
|
||||
@abstract standard constructor for setting $this->account_id
|
||||
@param $account_id account id
|
||||
*/
|
||||
/**
|
||||
* standard constructor for setting $this->account_id
|
||||
*
|
||||
* @param $account_id account id
|
||||
*/
|
||||
function applications($account_id = '')
|
||||
{
|
||||
$this->db = $GLOBALS['phpgw']->db;
|
||||
$this->db = clone($GLOBALS['egw']->db);
|
||||
$this->db->set_app('phpgwapi');
|
||||
|
||||
$this->account_id = get_account_id($account_id);
|
||||
|
||||
$this->xmlrpc_methods[] = array(
|
||||
@ -61,9 +64,9 @@
|
||||
function NOT_list_methods($_type='xmlrpc')
|
||||
{
|
||||
/*
|
||||
This handles introspection or discovery by the logged in client,
|
||||
in which case the input might be an array. The server always calls
|
||||
this function to fill the server dispatch map using a string.
|
||||
This handles introspection or discovery by the logged in client,
|
||||
in which case the input might be an array. The server always calls
|
||||
this function to fill the server dispatch map using a string.
|
||||
*/
|
||||
if (is_array($_type))
|
||||
{
|
||||
@ -99,15 +102,14 @@
|
||||
* These are the standard $this->account_id specific functions *
|
||||
\**************************************************************************/
|
||||
|
||||
/*!
|
||||
@function read_repository
|
||||
@abstract read from repository
|
||||
@discussion private should only be called from withing this class
|
||||
*/
|
||||
/**
|
||||
* read from repository
|
||||
*
|
||||
* private should only be called from withing this class
|
||||
*/
|
||||
function read_repository()
|
||||
{
|
||||
if (!isset($GLOBALS['phpgw_info']['apps']) ||
|
||||
!is_array($GLOBALS['phpgw_info']['apps']))
|
||||
if (!isset($GLOBALS['egw_info']['apps']) || !is_array($GLOBALS['egw_info']['apps']))
|
||||
{
|
||||
$this->read_installed_apps();
|
||||
}
|
||||
@ -116,28 +118,28 @@
|
||||
{
|
||||
return False;
|
||||
}
|
||||
$apps = $GLOBALS['phpgw']->acl->get_user_applications($this->account_id);
|
||||
foreach($GLOBALS['phpgw_info']['apps'] as $app => $data)
|
||||
$apps = $GLOBALS['egw']->acl->get_user_applications($this->account_id);
|
||||
foreach($GLOBALS['egw_info']['apps'] as $app => $data)
|
||||
{
|
||||
if (isset($apps[$app]) && $apps[$app])
|
||||
{
|
||||
$this->data[$app] = array(
|
||||
'title' => $GLOBALS['phpgw_info']['apps'][$app]['title'],
|
||||
'title' => $GLOBALS['egw_info']['apps'][$app]['title'],
|
||||
'name' => $app,
|
||||
'enabled' => True,
|
||||
'status' => $GLOBALS['phpgw_info']['apps'][$app]['status'],
|
||||
'id' => $GLOBALS['phpgw_info']['apps'][$app]['id']
|
||||
'status' => $GLOBALS['egw_info']['apps'][$app]['status'],
|
||||
'id' => $GLOBALS['egw_info']['apps'][$app]['id']
|
||||
);
|
||||
}
|
||||
}
|
||||
return $this->data;
|
||||
}
|
||||
|
||||
/*!
|
||||
@function read()
|
||||
@abstract read from the repository
|
||||
@discussion pubic function that is used to determine what apps a user has rights to
|
||||
*/
|
||||
/**
|
||||
* read from the repository
|
||||
*
|
||||
* pubic function that is used to determine what apps a user has rights to
|
||||
*/
|
||||
function read()
|
||||
{
|
||||
if (!count($this->data))
|
||||
@ -146,12 +148,12 @@
|
||||
}
|
||||
return $this->data;
|
||||
}
|
||||
/*!
|
||||
@function add
|
||||
@abstract add an app to a user profile
|
||||
@discussion
|
||||
@param $apps array containing apps to add for a user
|
||||
*/
|
||||
/**
|
||||
* add an app to a user profile
|
||||
*
|
||||
* @discussion
|
||||
* @param $apps array containing apps to add for a user
|
||||
*/
|
||||
function add($apps)
|
||||
{
|
||||
if(is_array($apps))
|
||||
@ -159,32 +161,32 @@
|
||||
foreach($apps as $app)
|
||||
{
|
||||
$this->data[$app] = array(
|
||||
'title' => $GLOBALS['phpgw_info']['apps'][$app]['title'],
|
||||
'title' => $GLOBALS['egw_info']['apps'][$app]['title'],
|
||||
'name' => $app,
|
||||
'enabled' => True,
|
||||
'status' => $GLOBALS['phpgw_info']['apps'][$app]['status'],
|
||||
'id' => $GLOBALS['phpgw_info']['apps'][$app]['id']
|
||||
'status' => $GLOBALS['egw_info']['apps'][$app]['status'],
|
||||
'id' => $GLOBALS['egw_info']['apps'][$app]['id']
|
||||
);
|
||||
}
|
||||
}
|
||||
elseif(gettype($apps))
|
||||
{
|
||||
$this->data[$apps] = array(
|
||||
'title' => $GLOBALS['phpgw_info']['apps'][$apps]['title'],
|
||||
'title' => $GLOBALS['egw_info']['apps'][$apps]['title'],
|
||||
'name' => $apps,
|
||||
'enabled' => True,
|
||||
'status' => $GLOBALS['phpgw_info']['apps'][$apps]['status'],
|
||||
'id' => $GLOBALS['phpgw_info']['apps'][$apps]['id']
|
||||
'status' => $GLOBALS['egw_info']['apps'][$apps]['status'],
|
||||
'id' => $GLOBALS['egw_info']['apps'][$apps]['id']
|
||||
);
|
||||
}
|
||||
return $this->data;
|
||||
}
|
||||
/*!
|
||||
@function delete
|
||||
@abstract delete an app from a user profile
|
||||
@discussion
|
||||
@param $appname appname to remove
|
||||
*/
|
||||
/**
|
||||
* delete an app from a user profile
|
||||
*
|
||||
* @discussion
|
||||
* @param $appname appname to remove
|
||||
*/
|
||||
function delete($appname)
|
||||
{
|
||||
if($this->data[$appname])
|
||||
@ -193,32 +195,32 @@
|
||||
}
|
||||
return $this->data;
|
||||
}
|
||||
/*!
|
||||
@function update_data
|
||||
@abstract update the array(?)
|
||||
@discussion
|
||||
@param $data update the repository array(?)
|
||||
*/
|
||||
/**
|
||||
* update the array(?)
|
||||
*
|
||||
* @discussion
|
||||
* @param $data update the repository array(?)
|
||||
*/
|
||||
function update_data($data)
|
||||
{
|
||||
$this->data = $data;
|
||||
return $this->data;
|
||||
}
|
||||
/*!
|
||||
@function save_repository()
|
||||
@abstract save the repository
|
||||
@discussion
|
||||
*/
|
||||
/**
|
||||
* save the repository
|
||||
*
|
||||
* @discussion
|
||||
*/
|
||||
function save_repository()
|
||||
{
|
||||
$num_rows = $GLOBALS['phpgw']->acl->delete_repository("%%", 'run', $this->account_id);
|
||||
$num_rows = $GLOBALS['egw']->acl->delete_repository("%%", 'run', $this->account_id);
|
||||
foreach($this->data as $app => $data)
|
||||
{
|
||||
if(!$this->is_system_enabled($app))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
$GLOBALS['phpgw']->acl->add_repository($app,'run',$this->account_id,1);
|
||||
$GLOBALS['egw']->acl->add_repository($app,'run',$this->account_id,1);
|
||||
}
|
||||
return $this->data;
|
||||
}
|
||||
@ -242,22 +244,22 @@
|
||||
|
||||
function read_account_specific()
|
||||
{
|
||||
if (!is_array($GLOBALS['phpgw_info']['apps']))
|
||||
if (!is_array($GLOBALS['egw_info']['apps']))
|
||||
{
|
||||
$this->read_installed_apps();
|
||||
}
|
||||
if ($app_list = $GLOBALS['phpgw']->acl->get_app_list_for_id('run',1,$this->account_id))
|
||||
if ($app_list = $GLOBALS['egw']->acl->get_app_list_for_id('run',1,$this->account_id))
|
||||
{
|
||||
foreach($app_list as $app)
|
||||
{
|
||||
if ($this->is_system_enabled($app))
|
||||
{
|
||||
$this->data[$app] = array(
|
||||
'title' => $GLOBALS['phpgw_info']['apps'][$app]['title'],
|
||||
'title' => $GLOBALS['egw_info']['apps'][$app]['title'],
|
||||
'name' => $app,
|
||||
'enabled' => True,
|
||||
'status' => $GLOBALS['phpgw_info']['apps'][$app]['status'],
|
||||
'id' => $GLOBALS['phpgw_info']['apps'][$app]['id']
|
||||
'status' => $GLOBALS['egw_info']['apps'][$app]['status'],
|
||||
'id' => $GLOBALS['egw_info']['apps'][$app]['id']
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -269,48 +271,45 @@
|
||||
* These are the generic functions. Not specific to $this->account_id *
|
||||
\**************************************************************************/
|
||||
|
||||
/*!
|
||||
@function read_installed_apps()
|
||||
@abstract populate array with a list of installed apps
|
||||
*/
|
||||
/**
|
||||
* populate array with a list of installed apps
|
||||
*
|
||||
*/
|
||||
function read_installed_apps()
|
||||
{
|
||||
$this->db->query('select * from phpgw_applications where app_enabled != 0 order by app_order asc',__LINE__,__FILE__);
|
||||
if($this->db->num_rows())
|
||||
$this->db->select($this->table_name,'*','app_enabled != 0',__LINE__,__FILE__,false,'ORDER BY app_order ASC');
|
||||
while ($this->db->next_record())
|
||||
{
|
||||
while ($this->db->next_record())
|
||||
{
|
||||
$title = $app_name = $this->db->f('app_name');
|
||||
$title = $app_name = $this->db->f('app_name');
|
||||
|
||||
if (@is_array($GLOBALS['phpgw_info']['user']['preferences']) &&
|
||||
($t = lang($app_name)) != $app_name.'*')
|
||||
{
|
||||
$title = $t;
|
||||
}
|
||||
$GLOBALS['phpgw_info']['apps'][$this->db->f('app_name')] = Array(
|
||||
'title' => $title,
|
||||
'name' => $this->db->f('app_name'),
|
||||
'enabled' => True,
|
||||
'status' => $this->db->f('app_enabled'),
|
||||
'id' => (int)$this->db->f('app_id'),
|
||||
'order' => (int)$this->db->f('app_order'),
|
||||
'version' => $this->db->f('app_version')
|
||||
);
|
||||
if (@is_array($GLOBALS['egw_info']['user']['preferences']) && ($t = lang($app_name)) != $app_name.'*')
|
||||
{
|
||||
$title = $t;
|
||||
}
|
||||
$GLOBALS['egw_info']['apps'][$this->db->f('app_name')] = Array(
|
||||
'title' => $title,
|
||||
'name' => $this->db->f('app_name'),
|
||||
'enabled' => True,
|
||||
'status' => $this->db->f('app_enabled'),
|
||||
'id' => (int)$this->db->f('app_id'),
|
||||
'order' => (int)$this->db->f('app_order'),
|
||||
'version' => $this->db->f('app_version')
|
||||
);
|
||||
}
|
||||
}
|
||||
/*!
|
||||
@function is_system_enabled
|
||||
@abstract check if an app is enabled
|
||||
@param $appname name of the app to check for
|
||||
*/
|
||||
|
||||
/**
|
||||
* check if an app is enabled
|
||||
*
|
||||
* @param $appname name of the app to check for
|
||||
*/
|
||||
function is_system_enabled($appname)
|
||||
{
|
||||
if(!is_array($GLOBALS['phpgw_info']['apps']))
|
||||
if(!is_array($GLOBALS['egw_info']['apps']))
|
||||
{
|
||||
$this->read_installed_apps();
|
||||
}
|
||||
if ($GLOBALS['phpgw_info']['apps'][$appname]['enabled'])
|
||||
if ($GLOBALS['egw_info']['apps'][$appname]['enabled'])
|
||||
{
|
||||
return True;
|
||||
}
|
||||
@ -322,7 +321,7 @@
|
||||
|
||||
function id2name($id)
|
||||
{
|
||||
foreach($GLOBALS['phpgw_info']['apps'] as $appname => $app)
|
||||
foreach($GLOBALS['egw_info']['apps'] as $appname => $app)
|
||||
{
|
||||
if((int)$app['id'] == (int)$id)
|
||||
{
|
||||
@ -334,11 +333,10 @@
|
||||
|
||||
function name2id($appname)
|
||||
{
|
||||
if(is_array($GLOBALS['phpgw_info']['apps'][$appname]))
|
||||
if(is_array($GLOBALS['egw_info']['apps'][$appname]))
|
||||
{
|
||||
return $GLOBALS['phpgw_info']['apps'][$appname]['id'];
|
||||
return $GLOBALS['egw_info']['apps'][$appname]['id'];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -1,24 +1,24 @@
|
||||
<?php
|
||||
/**************************************************************************\
|
||||
* eGroupWare API - Password auth and crypt functions *
|
||||
* This file written by Miles Lott <milos@groupwhere.org> *
|
||||
* Copyright (C) 2004 Miles Lott *
|
||||
* Many functions based on code from Frank Thomas <frank@thomas-alfeld.de> *
|
||||
* which can be seen at http://www.thomas-alfeld.de/frank/ *
|
||||
* Other functions from class.common.inc.php originally from phpGroupWare *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as published by *
|
||||
* the Free Software Foundation; either version 2.1 of the License, *
|
||||
* or any later version. *
|
||||
* This library is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU Lesser General Public License for more details. *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with this library; if not, write to the Free Software Foundation, *
|
||||
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
||||
\**************************************************************************/
|
||||
/**************************************************************************\
|
||||
* eGroupWare API - Password auth and crypt functions *
|
||||
* This file written by Miles Lott <milos@groupwhere.org> *
|
||||
* Copyright (C) 2004 Miles Lott *
|
||||
* Many functions based on code from Frank Thomas <frank@thomas-alfeld.de> *
|
||||
* which can be seen at http://www.thomas-alfeld.de/frank/ *
|
||||
* Other functions from class.common.inc.php originally from phpGroupWare *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as published by *
|
||||
* the Free Software Foundation; either version 2.1 of the License, *
|
||||
* or any later version. *
|
||||
* This library is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU Lesser General Public License for more details. *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with this library; if not, write to the Free Software Foundation, *
|
||||
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
||||
\**************************************************************************/
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
@ -33,11 +33,11 @@
|
||||
var $seeded = False;
|
||||
var $error = '';
|
||||
|
||||
/*!
|
||||
@function randomstring
|
||||
@abstract return a random string of size $size
|
||||
@param $size int-size of random string to return
|
||||
*/
|
||||
/**
|
||||
* return a random string of size $size
|
||||
*
|
||||
* @param $size int-size of random string to return
|
||||
*/
|
||||
function randomstring($size)
|
||||
{
|
||||
$s = '';
|
||||
@ -62,12 +62,13 @@
|
||||
return $s;
|
||||
}
|
||||
|
||||
/*!
|
||||
@function encrypt_password
|
||||
@abstract encrypt password
|
||||
@abstract uses the encryption type set in setup and calls the appropriate encryption functions
|
||||
@param $password password to encrypt
|
||||
*/
|
||||
/**
|
||||
* encrypt password
|
||||
*
|
||||
* uses the encryption type set in setup and calls the appropriate encryption functions
|
||||
*
|
||||
* @param $password password to encrypt
|
||||
*/
|
||||
function encrypt_password($password,$sql=False)
|
||||
{
|
||||
if($sql)
|
||||
@ -77,15 +78,16 @@
|
||||
return $this->encrypt_ldap($password);
|
||||
}
|
||||
|
||||
/*!
|
||||
@function compare_password
|
||||
@abstract compagres an encrypted password
|
||||
@abstract encryption type set in setup and calls the appropriate encryption functions
|
||||
@param $cleartext cleartext password
|
||||
@param $encrypted encrypted password
|
||||
@param $type type of encryption
|
||||
@param $username used as optional key of encryption for md5_hmac
|
||||
*/
|
||||
/**
|
||||
* compagres an encrypted password
|
||||
*
|
||||
* encryption type set in setup and calls the appropriate encryption functions
|
||||
*
|
||||
* @param $cleartext cleartext password
|
||||
* @param $encrypted encrypted password
|
||||
* @param $type type of encryption
|
||||
* @param $username used as optional key of encryption for md5_hmac
|
||||
*/
|
||||
function compare_password($cleartext,$encrypted,$type,$username='')
|
||||
{
|
||||
switch($type)
|
||||
@ -109,15 +111,16 @@
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
@function encrypt_ldap
|
||||
@abstract encrypt password for ldap
|
||||
@abstract uses the encryption type set in setup and calls the appropriate encryption functions
|
||||
@param $password password to encrypt
|
||||
*/
|
||||
/**
|
||||
* encrypt password for ldap
|
||||
*
|
||||
* uses the encryption type set in setup and calls the appropriate encryption functions
|
||||
*
|
||||
* @param $password password to encrypt
|
||||
*/
|
||||
function encrypt_ldap($password)
|
||||
{
|
||||
$type = strtolower($GLOBALS['phpgw_info']['server']['ldap_encryption_type']);
|
||||
$type = strtolower($GLOBALS['egw_info']['server']['ldap_encryption_type']);
|
||||
$salt = '';
|
||||
switch($type)
|
||||
{
|
||||
@ -163,12 +166,12 @@
|
||||
return $e_password;
|
||||
}
|
||||
|
||||
/* Create a password for storage in the phpgw_accounts table */
|
||||
/* Create a password for storage in the accounts table */
|
||||
function encrypt_sql($password)
|
||||
{
|
||||
/* Grab configured type, or default to md5() (old method) */
|
||||
$type = @$GLOBALS['phpgw_info']['server']['sql_encryption_type']
|
||||
? strtolower($GLOBALS['phpgw_info']['server']['sql_encryption_type'])
|
||||
$type = @$GLOBALS['egw_info']['server']['sql_encryption_type']
|
||||
? strtolower($GLOBALS['egw_info']['server']['sql_encryption_type'])
|
||||
: 'md5';
|
||||
switch($type)
|
||||
{
|
||||
|
@ -81,7 +81,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
$account = CreateObject('phpgwapi.accounts',$username,'u');
|
||||
$account =& CreateObject('phpgwapi.accounts',$username,'u');
|
||||
if ($account->account_id)
|
||||
{
|
||||
return true;
|
||||
@ -110,14 +110,5 @@
|
||||
{
|
||||
return false; // Cant change passwd in ADS
|
||||
}
|
||||
|
||||
function update_lastlogin($_account_id, $ip)
|
||||
{
|
||||
$account =& CreateObject('phpgwapi.accounts',$_account_id,'u');
|
||||
$account->read_repository();
|
||||
$account->data['lastlogin'] = time();
|
||||
$account->data['lastloginfrom'] = $ip;
|
||||
$account->save_repository();
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -1,28 +1,28 @@
|
||||
<?php
|
||||
/**************************************************************************\
|
||||
* eGroupWare API - Auth from HTTP *
|
||||
* This file written by Dan Kuykendall <seek3r@phpgroupware.org> *
|
||||
* and Joseph Engo <jengo@phpgroupware.org> *
|
||||
* Authentication based on HTTP auth *
|
||||
* Copyright (C) 2000, 2001 Dan Kuykendall *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is part of the eGroupWare API *
|
||||
* http://www.egroupware.org/api *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as published by *
|
||||
* the Free Software Foundation; either version 2.1 of the License, *
|
||||
* or any later version. *
|
||||
* This library is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU Lesser General Public License for more details. *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with this library; if not, write to the Free Software Foundation, *
|
||||
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
||||
\**************************************************************************/
|
||||
/**************************************************************************\
|
||||
* eGroupWare API - Auth from HTTP *
|
||||
* This file written by Dan Kuykendall <seek3r@phpgroupware.org> *
|
||||
* and Joseph Engo <jengo@phpgroupware.org> *
|
||||
* Authentication based on HTTP auth *
|
||||
* Copyright (C) 2000, 2001 Dan Kuykendall *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is part of the eGroupWare API *
|
||||
* http://www.egroupware.org/api *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as published by *
|
||||
* the Free Software Foundation; either version 2.1 of the License, *
|
||||
* or any later version. *
|
||||
* This library is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU Lesser General Public License for more details. *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with this library; if not, write to the Free Software Foundation, *
|
||||
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
||||
\**************************************************************************/
|
||||
|
||||
/* $Id$ */
|
||||
/* $Id$ */
|
||||
|
||||
class auth_
|
||||
{
|
||||
@ -44,17 +44,4 @@
|
||||
{
|
||||
return False;
|
||||
}
|
||||
|
||||
// Since there account data will still be stored in SQL, this should be safe to do. (jengo)
|
||||
function update_lastlogin($account_id, $ip)
|
||||
{
|
||||
$GLOBALS['egw']->db->query("SELECT account_lastlogin FROM phpgw_accounts WHERE account_id=" . (int)$account_id,__LINE__,__FILE__);
|
||||
$GLOBALS['egw']->db->next_record();
|
||||
$this->previous_login = $GLOBALS['egw']->db->f('account_lastlogin');
|
||||
|
||||
$GLOBALS['egw']->db->query("UPDATE phpgw_accounts SET account_lastloginfrom='"
|
||||
. "$ip', account_lastlogin='" . time()
|
||||
. "' WHERE account_id=" . (int)$account_id,__LINE__,__FILE__);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -29,6 +29,13 @@
|
||||
{
|
||||
var $previous_login = -1;
|
||||
|
||||
/**
|
||||
* authentication against LDAP
|
||||
*
|
||||
* @param string $username username of account to authenticate
|
||||
* @param string $passwd corresponding password
|
||||
* @return boolean true if successful authenticated, false otherwise
|
||||
*/
|
||||
function authenticate($username, $passwd)
|
||||
{
|
||||
if (ereg('[()|&=*,<>!~]',$username))
|
||||
@ -91,7 +98,7 @@
|
||||
{
|
||||
if ($GLOBALS['egw_info']['server']['account_repository'] != 'ldap')
|
||||
{
|
||||
$account = CreateObject('phpgwapi.accounts',$username,'u');
|
||||
$account =& CreateObject('phpgwapi.accounts',$username,'u');
|
||||
if (!$account->account_id && $GLOBALS['egw_info']['server']['auto_create_acct'])
|
||||
{
|
||||
// create a global array with all availible info about that account
|
||||
@ -119,15 +126,23 @@
|
||||
return False;
|
||||
}
|
||||
|
||||
function change_password($old_passwd, $new_passwd, $_account_id='')
|
||||
/**
|
||||
* changes password in LDAP
|
||||
*
|
||||
* @param string $old_passwd must be cleartext or empty to not to be checked
|
||||
* @param string $new_passwd must be cleartext
|
||||
* @param int $account_id account id of user whose passwd should be changed
|
||||
* @return boolean true if password successful changed, false otherwise
|
||||
*/
|
||||
function change_password($old_passwd, $new_passwd, $account_id=0)
|
||||
{
|
||||
if ('' == $_account_id)
|
||||
if (!$_account_id)
|
||||
{
|
||||
$username = $GLOBALS['egw_info']['user']['account_lid'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$username = $GLOBALS['egw']->accounts->id2name($_account_id);
|
||||
$username = $GLOBALS['egw']->accounts->id2name($account_id);
|
||||
}
|
||||
$filter = $GLOBALS['egw_info']['server']['ldap_search_filter'] ? $GLOBALS['egw_info']['server']['ldap_search_filter'] : '(uid=%user)';
|
||||
$filter = str_replace(array('%user','%domain'),array($username,$GLOBALS['egw_info']['user']['domain']),$filter);
|
||||
@ -139,41 +154,14 @@
|
||||
$entry['userpassword'] = $this->encrypt_password($new_passwd);
|
||||
$dn = $allValues[0]['dn'];
|
||||
|
||||
if (!@ldap_modify($ds, $dn, $entry))
|
||||
if ($old_passwd && $GLOBALS['egw']->auth->encrypt_password($old_passwd) != $allValues[0]['userpassword'] || !@ldap_modify($ds, $dn, $entry))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
$GLOBALS['egw']->session->appsession('password','phpgwapi',$new_passwd);
|
||||
|
||||
if($old_passwd) // if old password given (not called by admin) update the password in the session
|
||||
{
|
||||
$GLOBALS['egw']->session->appsession('password','phpgwapi',$new_passwd);
|
||||
}
|
||||
return $entry['userpassword'];
|
||||
}
|
||||
|
||||
function update_lastlogin($_account_id, $ip)
|
||||
{
|
||||
if ($GLOBALS['egw_info']['server']['account_repository'] == 'ldap')
|
||||
{
|
||||
$entry['phpgwaccountlastlogin'] = time();
|
||||
$entry['phpgwaccountlastloginfrom'] = $ip;
|
||||
|
||||
$ds = $GLOBALS['egw']->common->ldapConnect();
|
||||
$sri = ldap_search($ds, $GLOBALS['egw_info']['server']['ldap_context'], 'uidnumber=' . (int)$_account_id);
|
||||
$allValues = ldap_get_entries($ds, $sri);
|
||||
|
||||
$dn = $allValues[0]['dn'];
|
||||
$this->previous_login = $allValues[0]['phpgwaccountlastlogin'][0];
|
||||
|
||||
@ldap_modify($ds, $dn, $entry);
|
||||
}
|
||||
else
|
||||
{
|
||||
$GLOBALS['egw']->db->query("SELECT account_lastlogin FROM phpgw_accounts WHERE account_id=" . (int)$_account_id,__LINE__,__FILE__);
|
||||
$GLOBALS['egw']->db->next_record();
|
||||
$this->previous_login = $GLOBALS['egw']->db->f('account_lastlogin');
|
||||
|
||||
$GLOBALS['egw']->db->query("UPDATE phpgw_accounts SET account_lastloginfrom='"
|
||||
. "$ip', account_lastlogin='" . time()
|
||||
. "' WHERE account_id=" . (int)$_account_id,__LINE__,__FILE__);
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -1,27 +1,27 @@
|
||||
<?php
|
||||
/**************************************************************************\
|
||||
* eGroupWare API - Auth from Mail server *
|
||||
* This file written by Dan Kuykendall <seek3r@phpgroupware.org> *
|
||||
* Authentication based on mail server *
|
||||
* Copyright (C) 2000, 2001 Dan Kuykendall *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is part of the eGroupWare API *
|
||||
* http://www.egroupware.org/api *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as published by *
|
||||
* the Free Software Foundation; either version 2.1 of the License, *
|
||||
* or any later version. *
|
||||
* This library is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU Lesser General Public License for more details. *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with this library; if not, write to the Free Software Foundation, *
|
||||
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
||||
\**************************************************************************/
|
||||
/**************************************************************************\
|
||||
* eGroupWare API - Auth from Mail server *
|
||||
* This file written by Dan Kuykendall <seek3r@phpgroupware.org> *
|
||||
* Authentication based on mail server *
|
||||
* Copyright (C) 2000, 2001 Dan Kuykendall *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is part of the eGroupWare API *
|
||||
* http://www.egroupware.org/api *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as published by *
|
||||
* the Free Software Foundation; either version 2.1 of the License, *
|
||||
* or any later version. *
|
||||
* This library is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU Lesser General Public License for more details. *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with this library; if not, write to the Free Software Foundation, *
|
||||
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
||||
\**************************************************************************/
|
||||
|
||||
/* $Id$ */
|
||||
/* $Id$ */
|
||||
|
||||
class auth_
|
||||
{
|
||||
@ -29,8 +29,6 @@
|
||||
|
||||
function authenticate($username, $passwd)
|
||||
{
|
||||
error_reporting(error_reporting() - 2);
|
||||
|
||||
if ($GLOBALS['egw_info']['server']['mail_login_type'] == 'vmailmgr')
|
||||
{
|
||||
$username = $username . '@' . $GLOBALS['egw_info']['server']['mail_suffix'];
|
||||
@ -76,33 +74,17 @@
|
||||
.':'.$GLOBALS['egw_info']['server']['mail_port'].'}INBOX', $username , $passwd);
|
||||
}
|
||||
|
||||
error_reporting(error_reporting() + 2);
|
||||
if ($mailauth == False)
|
||||
{
|
||||
return False;
|
||||
}
|
||||
else
|
||||
{
|
||||
imap_close($mailauth);
|
||||
return True;
|
||||
}
|
||||
imap_close($mailauth);
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
function change_password($old_passwd, $new_passwd)
|
||||
{
|
||||
return False;
|
||||
}
|
||||
|
||||
// Since there account data will still be stored in SQL, this should be safe to do. (jengo)
|
||||
function update_lastlogin($account_id, $ip)
|
||||
{
|
||||
$GLOBALS['egw']->db->query("SELECT account_lastlogin FROM phpgw_accounts WHERE account_id=" . (int)$account_id,__LINE__,__FILE__);
|
||||
$GLOBALS['egw']->db->next_record();
|
||||
$this->previous_login = $GLOBALS['egw']->db->f('account_lastlogin');
|
||||
|
||||
$GLOBALS['egw']->db->query("UPDATE phpgw_accounts SET account_lastloginfrom='"
|
||||
. "$ip', account_lastlogin='" . time()
|
||||
. "' WHERE account_id=" . (int)$account_id,__LINE__,__FILE__);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -57,14 +57,4 @@
|
||||
// can't change passwords unless server runs as root (bad idea)
|
||||
return( False );
|
||||
}
|
||||
|
||||
function update_lastlogin($account_id, $ip)
|
||||
{
|
||||
$account_id = get_account_id($account_id);
|
||||
|
||||
$GLOBALS['egw']->db->query("update phpgw_accounts set account_lastloginfrom='"
|
||||
. "$ip', account_lastlogin='" . time()
|
||||
. "' where account_id='$account_id'",__LINE__,__FILE__);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -1,24 +1,24 @@
|
||||
<?php
|
||||
/**************************************************************************\
|
||||
* eGroupWare API - Auth from PAM *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is part of the eGroupWare API *
|
||||
* http://www.egroupware.org/api *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as published by *
|
||||
* the Free Software Foundation; either version 2.1 of the License, *
|
||||
* or any later version. *
|
||||
* This library is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU Lesser General Public License for more details. *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with this library; if not, write to the Free Software Foundation, *
|
||||
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
||||
\**************************************************************************/
|
||||
/**************************************************************************\
|
||||
* eGroupWare API - Auth from PAM *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is part of the eGroupWare API *
|
||||
* http://www.egroupware.org/api *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as published by *
|
||||
* the Free Software Foundation; either version 2.1 of the License, *
|
||||
* or any later version. *
|
||||
* This library is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU Lesser General Public License for more details. *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with this library; if not, write to the Free Software Foundation, *
|
||||
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
||||
\**************************************************************************/
|
||||
|
||||
/* $Id$ */
|
||||
/* $Id$ */
|
||||
|
||||
class auth_
|
||||
{
|
||||
@ -28,25 +28,12 @@
|
||||
{
|
||||
return True;
|
||||
}
|
||||
else
|
||||
{
|
||||
return False;
|
||||
}
|
||||
return False;
|
||||
}
|
||||
|
||||
function change_password($old_passwd, $new_passwd, $account_id='')
|
||||
{
|
||||
// deny password changes.
|
||||
return( False );
|
||||
}
|
||||
|
||||
function update_lastlogin($account_id, $ip)
|
||||
{
|
||||
$account_id = get_account_id($account_id);
|
||||
|
||||
$GLOBALS['egw']->db->query('UPDATE phpgw_accounts SET account_lastloginfrom='
|
||||
. $GLOBALS['egw']->db->quote($ip).', account_lastlogin=' . time()
|
||||
. ' WHERE account_id='.(int)$account_id,__LINE__,__FILE__);
|
||||
return False;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -1,31 +1,31 @@
|
||||
<?php
|
||||
/**************************************************************************\
|
||||
* eGroupWare API - Auth from SQL *
|
||||
* This file written by Dan Kuykendall <seek3r@phpgroupware.org> *
|
||||
* and Joseph Engo <jengo@phpgroupware.org> *
|
||||
* Encryption types other than md5() added by *
|
||||
* Miles Lott <milos@groupwhere.org> based on code from *
|
||||
* http://www.thomas-alfeld.de/frank/ *
|
||||
* massive code cleanup and *
|
||||
* added password migration by *
|
||||
* Cornelius Weiss <egw@von-und-zu-weiss.de *
|
||||
* Authentication based on SQL table *
|
||||
* Copyright (C) 2000, 2001 Dan Kuykendall *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as published by *
|
||||
* the Free Software Foundation; either version 2.1 of the License, *
|
||||
* or any later version. *
|
||||
* This library is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU Lesser General Public License for more details. *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with this library; if not, write to the Free Software Foundation, *
|
||||
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
||||
\**************************************************************************/
|
||||
|
||||
/* $Id$ */
|
||||
/**************************************************************************\
|
||||
* eGroupWare API - Auth from SQL *
|
||||
* This file written by Dan Kuykendall <seek3r@phpgroupware.org> *
|
||||
* and Joseph Engo <jengo@phpgroupware.org> *
|
||||
* Encryption types other than md5() added by *
|
||||
* Miles Lott <milos@groupwhere.org> based on code from *
|
||||
* http://www.thomas-alfeld.de/frank/ *
|
||||
* massive code cleanup and *
|
||||
* added password migration by *
|
||||
* Cornelius Weiss <egw@von-und-zu-weiss.de *
|
||||
* Authentication based on SQL table *
|
||||
* Copyright (C) 2000, 2001 Dan Kuykendall *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as published by *
|
||||
* the Free Software Foundation; either version 2.1 of the License, *
|
||||
* or any later version. *
|
||||
* This library is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU Lesser General Public License for more details. *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with this library; if not, write to the Free Software Foundation, *
|
||||
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
||||
\**************************************************************************/
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
class auth_
|
||||
{
|
||||
@ -34,98 +34,90 @@
|
||||
|
||||
function auth_()
|
||||
{
|
||||
copyobj($GLOBALS['egw']->db,$this->db);
|
||||
$this->type = @$GLOBALS['egw_info']['server']['sql_encryption_type']
|
||||
? strtolower($GLOBALS['egw_info']['server']['sql_encryption_type'])
|
||||
: 'md5';
|
||||
$this->db = clone($GLOBALS['egw']->db);
|
||||
$this->db->set_app('phpgwapi');
|
||||
$this->table = 'egw_accounts';
|
||||
|
||||
$this->type = @$GLOBALS['egw_info']['server']['sql_encryption_type'] ?
|
||||
strtolower($GLOBALS['egw_info']['server']['sql_encryption_type']) : 'md5';
|
||||
}
|
||||
|
||||
/*!
|
||||
@function authenticate
|
||||
@abstract password authentication against password stored in sql datababse
|
||||
@param $username username of account to authenticate
|
||||
@param $passwd corresponding password
|
||||
@param $passwd_type 'text' for cleartext passwords
|
||||
*/
|
||||
function authenticate($username, $passwd, $passwd_type)
|
||||
/**
|
||||
* password authentication against password stored in sql datababse
|
||||
*
|
||||
* @param string $username username of account to authenticate
|
||||
* @param string $passwd corresponding password
|
||||
* @param string $passwd_type='text' 'text' for cleartext passwords (default)
|
||||
* @return boolean true if successful authenticated, false otherwise
|
||||
*/
|
||||
function authenticate($username, $passwd, $passwd_type='text')
|
||||
{
|
||||
/* normal web form login */
|
||||
if($passwd_type == 'text')
|
||||
{
|
||||
$this->db->query("SELECT account_lid,account_pwd,account_lastlogin FROM phpgw_accounts WHERE account_lid = '$username' AND "
|
||||
. " account_type='u' AND "
|
||||
. " account_status ='A'",__LINE__,__FILE__);
|
||||
$this->db->next_record();
|
||||
$this->db->select($this->table,'account_lid,account_pwd,account_lastlogin',array(
|
||||
'account_lid' => $username,
|
||||
'account_type' => 'u',
|
||||
'account_status' => 'A'
|
||||
),__LINE__,__FILE__);
|
||||
|
||||
if($GLOBALS['egw_info']['server']['case_sensitive_username'] == true)
|
||||
if(!$this->db->next_record() || !$this->db->f('account_pwd') ||
|
||||
$GLOBALS['egw_info']['server']['case_sensitive_username'] && $this->db->f('account_lid') != $username)
|
||||
{
|
||||
if($this->db->f('account_lid') != $username) return false;
|
||||
return false;
|
||||
}
|
||||
if(!$this->db->f('account_pwd')) return false;
|
||||
if(!$this->compare_password($passwd,$this->db->f('account_pwd'),$this->type,strtolower($username)))
|
||||
{
|
||||
$match = false;
|
||||
// do we have to migrate an old password ?
|
||||
if($GLOBALS['egw_info']['server']['pwd_migration_allowed'])
|
||||
if($GLOBALS['egw_info']['server']['pwd_migration_allowed'] && !emplty($GLOBALS['egw_info']['server']['pwd_migration_types']))
|
||||
{
|
||||
if(!isset($GLOBALS['egw_info']['server']['pwd_migration_types'])) return false;
|
||||
|
||||
$allowed_types = explode(',', $GLOBALS['egw_info']['server']['pwd_migration_types']);
|
||||
foreach($allowed_types as $num => $type)
|
||||
foreach(explode(',', $GLOBALS['egw_info']['server']['pwd_migration_types']) as $type)
|
||||
{
|
||||
if($this->compare_password($passwd,$this->db->f('account_pwd'),$type,strtolower($username)))
|
||||
{
|
||||
$account_id = $GLOBALS['egw_info']['user']['account_id'];
|
||||
$encrypted_passwd = $this->encrypt_sql($passwd);
|
||||
$this->_update_passwd($encrypted_passwd,$passwd,$account_id,false,__FILE__);
|
||||
$this->_update_passwd($encrypted_passwd,$passwd,$account_id);
|
||||
$match = true;
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (!$match) return false;
|
||||
}
|
||||
|
||||
/* if this point is reached, auth was successfull */
|
||||
$this->previous_login = $this->db->f('account_lastlogin');
|
||||
return true;
|
||||
}
|
||||
/* Auth via crypted password. NOTE: mail needs cleartext password to authenticate against mailserver! */
|
||||
else
|
||||
{
|
||||
$this->db->query("SELECT * FROM phpgw_accounts WHERE account_lid = '$username' AND "
|
||||
. "account_pwd='" . $passwd . "' AND account_status ='A'",__LINE__,__FILE__);
|
||||
$this->db->next_record();
|
||||
|
||||
if($GLOBALS['egw_info']['server']['case_sensitive_username'] == true)
|
||||
$this->db->select($this->table,'account_lid,account_lastlogin',array(
|
||||
'account_lid' => $username,
|
||||
'account_type' => 'u',
|
||||
'account_status' => 'A',
|
||||
'account_pwd' => $passwd,
|
||||
),__LINE__,__FILE__);
|
||||
|
||||
if(!$this->db->next_record() ||
|
||||
$GLOBALS['egw_info']['server']['case_sensitive_username'] && $this->db->f('account_lid') != $username)
|
||||
{
|
||||
if($this->db->f('account_lid') != $username)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if($this->db->f('account_lid'))
|
||||
{
|
||||
$this->previous_login = $this->db->f('account_lastlogin');
|
||||
return True;
|
||||
}
|
||||
else
|
||||
{
|
||||
return False;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// if this point is reached, auth was successfull
|
||||
$this->previous_login = $this->db->f('account_lastlogin');
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/*!
|
||||
@function change_password
|
||||
@abstract changes password in sql datababse
|
||||
@param $old_passwd must be cleartext
|
||||
@param $new_passwd must be cleartext
|
||||
@param $account_id account id of user whose passwd should be changed
|
||||
*/
|
||||
function change_password($old_passwd, $new_passwd, $account_id = '')
|
||||
/**
|
||||
* changes password in sql datababse
|
||||
*
|
||||
* @param string $old_passwd must be cleartext
|
||||
* @param string $new_passwd must be cleartext
|
||||
* @param int $account_id account id of user whose passwd should be changed
|
||||
* @return boolean true if password successful changed, false otherwise
|
||||
*/
|
||||
function change_password($old_passwd, $new_passwd, $account_id=0)
|
||||
{
|
||||
$admin = True;
|
||||
// Don't allow password changes for other accounts when using XML-RPC
|
||||
@ -135,56 +127,49 @@
|
||||
$account_id = $GLOBALS['egw_info']['user']['account_id'];
|
||||
}
|
||||
|
||||
$this->db->query("SELECT account_pwd FROM phpgw_accounts WHERE account_id = " . (int)$account_id
|
||||
. " AND " // . " account_type='u' AND "
|
||||
. " account_status ='A'",__LINE__,__FILE__);
|
||||
$this->db->next_record();
|
||||
if(!$this->db->f('account_pwd')) return false;
|
||||
$this->db->select($this->table,'account_pwd',array(
|
||||
'account_id' => $account_id,
|
||||
'account_type' => 'u',
|
||||
'account_status' => 'A',
|
||||
),__LINE__,__FILE__);
|
||||
|
||||
if(!$this->db->next_record()) return false; // account not found
|
||||
|
||||
/* Check the old_passwd to make sure this is legal */
|
||||
if(!$admin)
|
||||
if(!$admin && !$this->compare_password($old_passwd,$this->db->f('account_pwd'),$this->type,strtolower($username)))
|
||||
{
|
||||
if(!$this->compare_password($old_passwd,$this->db->f('account_pwd'),$this->type,strtolower($username)))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* old password ok, or admin called the function from the admin application (no old passwd available).*/
|
||||
$encrypted_passwd = $this->encrypt_sql($new_passwd);
|
||||
return $this->_update_passwd($encrypted_passwd,$new_passwd,$account_id,$admin,__FILE__);
|
||||
return $this->_update_passwd($this->encrypt_sql($new_passwd),$new_passwd,$account_id,$admin);
|
||||
}
|
||||
|
||||
function _update_passwd($encrypted_passwd,$new_passwd,$account_id,$admin=False,$file='')
|
||||
/**
|
||||
* changes password in sql datababse
|
||||
*
|
||||
* @internal
|
||||
* @param string $encrypted_passwd
|
||||
* @param string $new_passwd cleartext
|
||||
* @param int $account_id account id of user whose passwd should be changed
|
||||
* @param boolean $admin=false called by admin, if not update password in the session
|
||||
* @return boolean true if password successful changed, false otherwise
|
||||
*/
|
||||
function _update_passwd($encrypted_passwd,$new_passwd,$account_id,$admin=false)
|
||||
{
|
||||
/* This should only be called from this file */
|
||||
if($file != EGW_API_INC . SEP . 'class.auth_sql.inc.php')
|
||||
{
|
||||
return False;
|
||||
}
|
||||
$this->db->query("UPDATE phpgw_accounts SET account_pwd='" . $encrypted_passwd . "',"
|
||||
. "account_lastpwd_change='" . time()
|
||||
. "' WHERE account_id=" . (int)$account_id,__LINE__,__FILE__);
|
||||
$this->db->next_record();
|
||||
if($this->db->affected_rows())
|
||||
{
|
||||
if(!$admin)
|
||||
{
|
||||
$GLOBALS['egw']->session->appsession('password','phpgwapi',$new_passwd);
|
||||
}
|
||||
return $encrypted_passwd;
|
||||
}
|
||||
else
|
||||
{
|
||||
return False;
|
||||
}
|
||||
}
|
||||
$this->db->update($this->table,array(
|
||||
'account_pwd' => $encrypted_passwd,
|
||||
'account_lastpwd_change' => time(),
|
||||
),array(
|
||||
'account_id' => $account_id,
|
||||
),__LINE__,__FILE__);
|
||||
|
||||
function update_lastlogin($account_id, $ip)
|
||||
{
|
||||
$GLOBALS['egw']->db->query("UPDATE phpgw_accounts SET account_lastloginfrom='"
|
||||
. "$ip', account_lastlogin='" . time()
|
||||
. "' WHERE account_id=" . (int)$account_id,__LINE__,__FILE__);
|
||||
if(!$this->db->affected_rows()) return false;
|
||||
|
||||
if(!$admin)
|
||||
{
|
||||
$GLOBALS['egw']->session->appsession('password','phpgwapi',$new_passwd);
|
||||
}
|
||||
return $encrypted_passwd;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -31,6 +31,8 @@
|
||||
function auth_()
|
||||
{
|
||||
$this->db = clone($GLOBALS['egw']->db);
|
||||
$this->db->set_app('phpgwapi');
|
||||
$this->table = 'egw_accounts';
|
||||
}
|
||||
|
||||
function authenticate($username, $passwd)
|
||||
@ -41,6 +43,16 @@
|
||||
{
|
||||
echo "<b>Debug SQL: uid - $username passwd - $passwd</b>";
|
||||
}
|
||||
$this->db->select($this->table,'account_lid,account_pwd',array(
|
||||
'account_lid' => $username,
|
||||
'account_status' => 'A',
|
||||
'account_type' => 'u',
|
||||
),__LINE__,__FILE__);
|
||||
|
||||
if (!$this->db->next_record() || $GLOBALS['egw_info']['server']['case_sensitive_username'] && $db->f('account_lid') != $username)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
# Apache + mod_ssl provide the data in the environment
|
||||
# Certificate (chain) verification occurs inside mod_ssl
|
||||
@ -48,32 +60,9 @@
|
||||
if(!isset($_SERVER['SSL_CLIENT_S_DN']))
|
||||
{
|
||||
# if we're not doing SSL authentication, behave like auth_sql
|
||||
$this->db->query("SELECT * FROM phpgw_accounts WHERE account_lid = '$username' AND "
|
||||
. "account_pwd='" . md5($passwd) . "' AND account_status ='A'",__LINE__,__FILE__);
|
||||
$this->db->next_record();
|
||||
}
|
||||
else
|
||||
{
|
||||
# use username only for authentication, ignore X.509 subject in $passwd for now
|
||||
$this->db->query("SELECT * FROM phpgw_accounts WHERE account_lid = '$username' AND account_status ='A'",__LINE__,__FILE__);
|
||||
$this->db->next_record();
|
||||
}
|
||||
|
||||
if($GLOBALS['egw_info']['server']['case_sensitive_username'] == true)
|
||||
{
|
||||
if($db->f('account_lid') != $username)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if($this->db->f('account_lid'))
|
||||
{
|
||||
return True;
|
||||
}
|
||||
else
|
||||
{
|
||||
return False;
|
||||
return $this->compare_password($passwd,$this->db->f('account_pwd'),$this->type,strtolower($username));
|
||||
}
|
||||
return True;
|
||||
}
|
||||
|
||||
function change_password($old_passwd, $new_passwd, $account_id = '')
|
||||
@ -83,25 +72,17 @@
|
||||
$account_id = $GLOBALS['egw_info']['user']['account_id'];
|
||||
}
|
||||
|
||||
$encrypted_passwd = md5($new_passwd);
|
||||
$encrypted_passwd = $this->encrypt_sql($new_passwd);
|
||||
|
||||
$GLOBALS['egw']->db->query("UPDATE phpgw_accounts SET account_pwd='" . md5($new_passwd) . "',"
|
||||
. "account_lastpwd_change='" . time() . "' WHERE account_id=" . (int)$account_id,__LINE__,__FILE__);
|
||||
$GLOBALS['egw']->db->update($this->table,array(
|
||||
'account_pwd' => $encrypted_passwd,
|
||||
'account_lastpwd_change' => time(),
|
||||
),array(
|
||||
'account_id' => $account_id,
|
||||
),__LINE__,__FILE__);
|
||||
|
||||
$GLOBALS['egw']->session->appsession('password','phpgwapi',$new_passwd);
|
||||
|
||||
return $encrypted_passwd;
|
||||
}
|
||||
|
||||
function update_lastlogin($account_id, $ip)
|
||||
{
|
||||
$GLOBALS['egw']->db->query("SELECT account_lastlogin FROM phpgw_accounts WHERE account_id=" . (int)$account_id,__LINE__,__FILE__);
|
||||
$GLOBALS['egw']->db->next_record();
|
||||
$this->previous_login = $GLOBALS['egw']->db->f('account_lastlogin');
|
||||
|
||||
$GLOBALS['egw']->db->query("UPDATE phpgw_accounts SET account_lastloginfrom='"
|
||||
. "$ip', account_lastlogin='" . time()
|
||||
. "' WHERE account_id=" . (int)$account_id,__LINE__,__FILE__);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -1,31 +1,31 @@
|
||||
<?php
|
||||
/**************************************************************************\
|
||||
* eGroupWare API - Commononly used functions *
|
||||
* This file written by Dan Kuykendall <seek3r@phpgroupware.org> *
|
||||
* and Joseph Engo <jengo@phpgroupware.org> *
|
||||
* and Mark Peters <skeeter@phpgroupware.org> *
|
||||
* and Lars Kneschke <lkneschke@linux-at-work.de> *
|
||||
* Functions commonly used by eGroupWare developers *
|
||||
* Copyright (C) 2000, 2001 Dan Kuykendall *
|
||||
* Copyright (C) 2003 Lars Kneschke *
|
||||
* -------------------------------------------------------------------------*
|
||||
* This library is part of the eGroupWare API *
|
||||
* http://www.egroupware.org *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as published by *
|
||||
* the Free Software Foundation; either version 2.1 of the License, *
|
||||
* or any later version. *
|
||||
* This library is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU Lesser General Public License for more details. *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with this library; if not, write to the Free Software Foundation, *
|
||||
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
||||
\**************************************************************************/
|
||||
/**************************************************************************\
|
||||
* eGroupWare API - Commononly used functions *
|
||||
* This file written by Dan Kuykendall <seek3r@phpgroupware.org> *
|
||||
* and Joseph Engo <jengo@phpgroupware.org> *
|
||||
* and Mark Peters <skeeter@phpgroupware.org> *
|
||||
* and Lars Kneschke <lkneschke@linux-at-work.de> *
|
||||
* Functions commonly used by eGroupWare developers *
|
||||
* Copyright (C) 2000, 2001 Dan Kuykendall *
|
||||
* Copyright (C) 2003 Lars Kneschke *
|
||||
* -------------------------------------------------------------------------*
|
||||
* This library is part of the eGroupWare API *
|
||||
* http://www.egroupware.org *
|
||||
* ------------------------------------------------------------------------ *
|
||||
* This library is free software; you can redistribute it and/or modify it *
|
||||
* under the terms of the GNU Lesser General Public License as published by *
|
||||
* the Free Software Foundation; either version 2.1 of the License, *
|
||||
* or any later version. *
|
||||
* This library is distributed in the hope that it will be useful, but *
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||
* See the GNU Lesser General Public License for more details. *
|
||||
* You should have received a copy of the GNU Lesser General Public License *
|
||||
* along with this library; if not, write to the Free Software Foundation, *
|
||||
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
|
||||
\**************************************************************************/
|
||||
|
||||
/* $Id$ */
|
||||
/* $Id$ */
|
||||
|
||||
$d1 = strtolower(@substr(EGW_API_INC,0,3));
|
||||
$d2 = strtolower(@substr(EGW_SERVER_ROOT,0,3));
|
||||
@ -37,22 +37,22 @@
|
||||
}
|
||||
unset($d1);unset($d2);unset($d3);
|
||||
|
||||
/*!
|
||||
@class common
|
||||
@abstract common class that contains commonly used functions
|
||||
*/
|
||||
/**
|
||||
* common class that contains commonly used functions
|
||||
*
|
||||
*/
|
||||
class common
|
||||
{
|
||||
var $debug_info; // An array with debugging info from the API
|
||||
var $found_files;
|
||||
|
||||
/*!
|
||||
@function cmp_version
|
||||
@abstract Compares two Version strings and return 1 if str2 is newest (bigger version number) than str1
|
||||
@discussion This function checks for major version only.
|
||||
@param $str1
|
||||
@param $str2
|
||||
*/
|
||||
/**
|
||||
* Compares two Version strings and return 1 if str2 is newest (bigger version number) than str1
|
||||
*
|
||||
* This function checks for major version only.
|
||||
* @param $str1
|
||||
* @param $str2
|
||||
*/
|
||||
function cmp_version($str1,$str2,$debug=False)
|
||||
{
|
||||
ereg("([0-9]+)\.([0-9]+)\.([0-9]+)[a-zA-Z]*([0-9]*)",$str1,$regs);
|
||||
@ -77,13 +77,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
@function cmp_version_long
|
||||
@abstract Compares two Version strings and return 1 if str2 is newest (bigger version number) than str1
|
||||
@discussion This function checks all fields. cmp_version() checks release version only.
|
||||
@param $str1
|
||||
@param $str2
|
||||
*/
|
||||
/**
|
||||
* Compares two Version strings and return 1 if str2 is newest (bigger version number) than str1
|
||||
*
|
||||
* This function checks all fields. cmp_version() checks release version only.
|
||||
* @param $str1
|
||||
* @param $str2
|
||||
*/
|
||||
function cmp_version_long($str1,$str2,$debug=False)
|
||||
{
|
||||
ereg("([0-9]+)\.([0-9]+)\.([0-9]+)[a-zA-Z]*([0-9]*)\.([0-9]*)",$str1,$regs);
|
||||
@ -114,12 +114,12 @@
|
||||
}
|
||||
|
||||
// Convert an array into the format needed for the access column.
|
||||
/*!
|
||||
@function array_to_string
|
||||
@abstract Convert an array into the format needed for the access column
|
||||
@param $access
|
||||
@param $array
|
||||
*/
|
||||
/**
|
||||
* Convert an array into the format needed for the access column
|
||||
*
|
||||
* @param $access
|
||||
* @param $array
|
||||
*/
|
||||
function array_to_string($access,$array)
|
||||
{
|
||||
$this->debug_info[] = 'array_to_string() is a depreciated function - use ACL instead';
|
||||
@ -175,12 +175,12 @@
|
||||
}
|
||||
|
||||
// This is used for searching the access fields
|
||||
/*!
|
||||
@function sql_search
|
||||
@abstract this function is used for searching the access fields
|
||||
@param $table
|
||||
@param $owner
|
||||
*/
|
||||
/**
|
||||
* this function is used for searching the access fields
|
||||
*
|
||||
* @param $table
|
||||
* @param $owner
|
||||
*/
|
||||
function sql_search($table,$owner=0)
|
||||
{
|
||||
$this->debug_info[] = 'sql_search() is a deprecated function - use ACL instead';
|
||||
@ -201,11 +201,11 @@
|
||||
}
|
||||
|
||||
// return a array of installed languages
|
||||
/*!
|
||||
@function getInstalledLanguages
|
||||
@abstract return an array of installed languages
|
||||
@result $installedLanguages; an array containing the installed languages
|
||||
*/
|
||||
/**
|
||||
* return an array of installed languages
|
||||
*
|
||||
* @return $installedLanguages; an array containing the installed languages
|
||||
*/
|
||||
function getInstalledLanguages()
|
||||
{
|
||||
$GLOBALS['egw']->db->query('SELECT DISTINCT lang FROM phpgw_lang');
|
||||
@ -220,12 +220,12 @@
|
||||
// return the preferred language of the users
|
||||
// it's using HTTP_ACCEPT_LANGUAGE (send from the users browser)
|
||||
// and ...(to find out which languages are installed)
|
||||
/*!
|
||||
@function getPreferredLanguage
|
||||
@abstract return the preferred langugae of the users
|
||||
@discussion it uses HTTP_ACCEPT_LANGUAGE (from the users browser) <br>
|
||||
and .... to find out which languages are installed
|
||||
*/
|
||||
/**
|
||||
* return the preferred langugae of the users
|
||||
*
|
||||
* it uses HTTP_ACCEPT_LANGUAGE (from the users browser) <br>
|
||||
* and .... to find out which languages are installed
|
||||
*/
|
||||
function getPreferredLanguage()
|
||||
{
|
||||
// create a array of languages the user is accepting
|
||||
@ -257,27 +257,27 @@
|
||||
return $retValue;
|
||||
}
|
||||
|
||||
/*!
|
||||
@function ldap_addslashes
|
||||
@abstract escapes a string for use in searchfilters meant for ldap_search.
|
||||
Escaped Characters are: '*', '(', ')', ' ', '\', NUL
|
||||
It's actually a PHP-Bug, that we have to escape space.
|
||||
For all other Characters, refer to RFC2254.
|
||||
@param $string either a string to be escaped, or an array of values to be escaped
|
||||
*/
|
||||
/**
|
||||
* escapes a string for use in searchfilters meant for ldap_search.
|
||||
*
|
||||
* Escaped Characters are: '*', '(', ')', ' ', '\', NUL
|
||||
* It's actually a PHP-Bug, that we have to escape space.
|
||||
* For all other Characters, refer to RFC2254.
|
||||
* @param $string either a string to be escaped, or an array of values to be escaped
|
||||
*/
|
||||
function ldap_addslashes($string='')
|
||||
{
|
||||
return str_replace(array('\\','*','(',')','\0',' '),array('\\\\','\*','\(','\)','\\0','\20'),$string);
|
||||
}
|
||||
|
||||
// connect to the ldap server and return a handle
|
||||
/*!
|
||||
@function ldapConnect
|
||||
@abstract connect to the ldap server and return a handle
|
||||
@param $host ldap host
|
||||
@param $dn ldap_root_dn
|
||||
@param $passwd ldap_root_pw
|
||||
*/
|
||||
/**
|
||||
* connect to the ldap server and return a handle
|
||||
*
|
||||
* @param $host ldap host
|
||||
* @param $dn ldap_root_dn
|
||||
* @param $passwd ldap_root_pw
|
||||
*/
|
||||
function ldapConnect($host='', $dn='', $passwd='')
|
||||
{
|
||||
if(!function_exists('ldap_connect'))
|
||||
@ -319,6 +319,7 @@
|
||||
}
|
||||
|
||||
printf("<b>Error: Can't connect to LDAP server %s!</b><br>",$host);
|
||||
echo function_backtrace(1);
|
||||
return False;
|
||||
}
|
||||
|
||||
@ -340,19 +341,20 @@
|
||||
}
|
||||
|
||||
printf("<b>Error: Can't bind to LDAP server: %s!</b><br>",$dn);
|
||||
echo function_backtrace(1);
|
||||
return False;
|
||||
}
|
||||
|
||||
return $ds;
|
||||
}
|
||||
|
||||
/*!
|
||||
@function egw_exit
|
||||
@abstract function to stop running an app
|
||||
@discussion used to stop running an app in the middle of execution <br>
|
||||
There may need to be some cleanup before hand
|
||||
@param $call_footer boolean value to if true then call footer else exit
|
||||
*/
|
||||
/**
|
||||
* function to stop running an app
|
||||
*
|
||||
* used to stop running an app in the middle of execution <br>
|
||||
* There may need to be some cleanup before hand
|
||||
* @param $call_footer boolean value to if true then call footer else exit
|
||||
*/
|
||||
function egw_exit($call_footer = False)
|
||||
{
|
||||
if (!defined('EGW_EXIT'))
|
||||
@ -393,11 +395,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
@function randomstring
|
||||
@abstract return a random string of size $size
|
||||
@param $size int-size of random string to return
|
||||
*/
|
||||
/**
|
||||
* return a random string of size $size
|
||||
*
|
||||
* @param $size int-size of random string to return
|
||||
*/
|
||||
function randomstring($size)
|
||||
{
|
||||
$s = '';
|
||||
@ -422,11 +424,11 @@
|
||||
return filesystem_separator();
|
||||
}
|
||||
|
||||
/*!
|
||||
@function error_list
|
||||
@abstract This is used for reporting errors in a nice format.
|
||||
@param $error - array of errors
|
||||
*/
|
||||
/**
|
||||
* This is used for reporting errors in a nice format.
|
||||
*
|
||||
* @param $error - array of errors
|
||||
*/
|
||||
function error_list($errors,$text='Error')
|
||||
{
|
||||
if (! is_array($errors))
|
||||
@ -443,14 +445,14 @@
|
||||
return $html_error . '</table>';
|
||||
}
|
||||
|
||||
/*!
|
||||
@function check_owner
|
||||
@abstract none yet
|
||||
@param $record ?
|
||||
@param $link ?
|
||||
@param $label ?
|
||||
@param $extravars
|
||||
*/
|
||||
/**
|
||||
* none yet
|
||||
*
|
||||
* @param $record ?
|
||||
* @param $link ?
|
||||
* @param $label ?
|
||||
* @param $extravars
|
||||
*/
|
||||
// This is a depreciated function - use ACL instead (jengo)
|
||||
function check_owner($record,$link,$label,$extravars = '')
|
||||
{
|
||||
@ -476,13 +478,13 @@
|
||||
*/
|
||||
}
|
||||
|
||||
/*!
|
||||
@function display_fullname
|
||||
@abstract return the fullname of a user
|
||||
@param $lid account loginid
|
||||
@param $firstname firstname
|
||||
@param $lastname lastname
|
||||
*/
|
||||
/**
|
||||
* return the fullname of a user
|
||||
*
|
||||
* @param $lid account loginid
|
||||
* @param $firstname firstname
|
||||
* @param $lastname lastname
|
||||
*/
|
||||
function display_fullname($lid = '', $firstname = '', $lastname = '')
|
||||
{
|
||||
if (! $lid && ! $firstname && ! $lastname)
|
||||
@ -529,30 +531,30 @@
|
||||
return $name;
|
||||
}
|
||||
|
||||
/*!
|
||||
@function grab_owner_name
|
||||
@abstract grab the owner name
|
||||
@param $id account id
|
||||
*/
|
||||
/**
|
||||
* grab the owner name
|
||||
*
|
||||
* @param $id account id
|
||||
*/
|
||||
function grab_owner_name($accountid = '')
|
||||
{
|
||||
$GLOBALS['egw']->accounts->get_account_name($accountid,$lid,$fname,$lname);
|
||||
return $this->display_fullname($lid,$fname,$lname);
|
||||
}
|
||||
|
||||
/*!
|
||||
@function create_tabs
|
||||
@abstract create tabs
|
||||
@param array $tabs an array repersenting the tabs you wish to display, each element
|
||||
in the array is an array of 3 elements, 'label' which is the
|
||||
text displaed on the tab (you should pass translated string,
|
||||
create_tabs will not do <code>lang()</code> for you), 'link'
|
||||
which is the uri, 'target', the frame name or '_blank' to show
|
||||
page in a new browser window.
|
||||
@param mixed $selected the tab whos key is $selected will be displayed as current tab
|
||||
@param $fontsize optional
|
||||
@return string return html that displays the tabs
|
||||
*/
|
||||
/**
|
||||
* create tabs
|
||||
*
|
||||
* @param array $tabs an array repersenting the tabs you wish to display, each element
|
||||
* * * in the array is an array of 3 elements, 'label' which is the
|
||||
* * * text displaed on the tab (you should pass translated string,
|
||||
* * * create_tabs will not do <code>lang()</code> for you), 'link'
|
||||
* * * which is the uri, 'target', the frame name or '_blank' to show
|
||||
* * * page in a new browser window.
|
||||
* @param mixed $selected the tab whos key is $selected will be displayed as current tab
|
||||
* @param $fontsize optional
|
||||
* @return string return html that displays the tabs
|
||||
*/
|
||||
function create_tabs($tabs, $selected, $fontsize = '')
|
||||
{
|
||||
$output_text = '<table border="0" cellspacing="0" cellpadding="0"><tr>';
|
||||
@ -638,12 +640,12 @@
|
||||
return $output_text;
|
||||
}
|
||||
|
||||
/*!
|
||||
@function get_app_dir
|
||||
@abstract get directory of application
|
||||
@discussion $appname can either be passed or derived from $GLOBALS['egw_info']['flags']['currentapp'];
|
||||
@param $appname name of application
|
||||
*/
|
||||
/**
|
||||
* get directory of application
|
||||
*
|
||||
* $appname can either be passed or derived from $GLOBALS['egw_info']['flags']['currentapp'];
|
||||
* @param $appname name of application
|
||||
*/
|
||||
function get_app_dir($appname = '')
|
||||
{
|
||||
if ($appname == '')
|
||||
@ -672,12 +674,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
@function get_inc_dir
|
||||
@abstract get inc (include dir) of application
|
||||
@discussion $appname can either be passed or derived from $GLOBALS['egw_info']['flags']['currentapp'];
|
||||
@param $appname name of application
|
||||
*/
|
||||
/**
|
||||
* get inc (include dir) of application
|
||||
*
|
||||
* $appname can either be passed or derived from $GLOBALS['egw_info']['flags']['currentapp'];
|
||||
* @param $appname name of application
|
||||
*/
|
||||
function get_inc_dir($appname = '')
|
||||
{
|
||||
if (! $appname)
|
||||
@ -706,12 +708,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
@function list_themes
|
||||
@abstract list themes available
|
||||
@note themes can either be css file like in HEAD (if the template has a css-dir and has css-files in is) \
|
||||
or ordinary .14 themes-files
|
||||
*/
|
||||
/**
|
||||
* list themes available
|
||||
*
|
||||
* themes can either be css file like in HEAD (if the template has a css-dir and has css-files in is) \
|
||||
* or ordinary .14 themes-files
|
||||
*/
|
||||
function list_themes()
|
||||
{
|
||||
$tpl_dir = $this->get_tpl_dir('phpgwapi');
|
||||
@ -752,7 +754,7 @@
|
||||
$d = dir(EGW_SERVER_ROOT . '/phpgwapi/templates');
|
||||
while ($entry=$d->read())
|
||||
{
|
||||
if ($entry != '..' && is_file(EGW_SERVER_ROOT . '/phpgwapi/templates/' . $entry .'/setup/setup.inc.php')
|
||||
if ($entry != '..' && is_file(EGW_SERVER_ROOT . '/phpgwapi/templates/' . $entry .'/setup/setup.inc.php')
|
||||
)
|
||||
{
|
||||
$list[$entry]['name'] = $entry;
|
||||
@ -776,11 +778,11 @@
|
||||
return $list;
|
||||
}
|
||||
|
||||
/*!
|
||||
@function get_tpl_dir
|
||||
@abstract get template dir of an application
|
||||
@param $appname appication name optional can be derived from $GLOBALS['egw_info']['flags']['currentapp'];
|
||||
*/
|
||||
/**
|
||||
* get template dir of an application
|
||||
*
|
||||
* @param $appname appication name optional can be derived from $GLOBALS['egw_info']['flags']['currentapp'];
|
||||
*/
|
||||
function get_tpl_dir($appname = '')
|
||||
{
|
||||
if (! $appname)
|
||||
@ -832,12 +834,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
@function is_image_dir
|
||||
@abstract checks if image_dir exists and has more than just a navbar-icon
|
||||
@note this is just a workaround for idots, better to use find_image, which has a fallback \
|
||||
on a per image basis to the default dir
|
||||
*/
|
||||
/**
|
||||
* checks if image_dir exists and has more than just a navbar-icon
|
||||
*
|
||||
* this is just a workaround for idots, better to use find_image, which has a fallback \
|
||||
* on a per image basis to the default dir
|
||||
*/
|
||||
function is_image_dir($dir)
|
||||
{
|
||||
if (!@is_dir($dir))
|
||||
@ -858,11 +860,11 @@
|
||||
return False;
|
||||
}
|
||||
|
||||
/*!
|
||||
@function get_image_dir
|
||||
@abstract get image dir of an application
|
||||
@param $appname application name optional can be derived from $GLOBALS['egw_info']['flags']['currentapp'];
|
||||
*/
|
||||
/**
|
||||
* get image dir of an application
|
||||
*
|
||||
* @param $appname application name optional can be derived from $GLOBALS['egw_info']['flags']['currentapp'];
|
||||
*/
|
||||
function get_image_dir($appname = '')
|
||||
{
|
||||
if ($appname == '')
|
||||
@ -897,11 +899,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
@function get_image_path
|
||||
@abstract get image path of an application
|
||||
@param $appname appication name optional can be derived from $GLOBALS['egw_info']['flags']['currentapp'];
|
||||
*/
|
||||
/**
|
||||
* get image path of an application
|
||||
*
|
||||
* @param $appname appication name optional can be derived from $GLOBALS['egw_info']['flags']['currentapp'];
|
||||
*/
|
||||
function get_image_path($appname = '')
|
||||
{
|
||||
if ($appname == '')
|
||||
@ -1109,11 +1111,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
@function navbar
|
||||
@abstract none yet
|
||||
@discussion *someone wanna add some detail here*
|
||||
*/
|
||||
/**
|
||||
* none yet
|
||||
*
|
||||
* *someone wanna add some detail here*
|
||||
*/
|
||||
function navbar()
|
||||
{
|
||||
|
||||
@ -1205,10 +1207,10 @@
|
||||
$GLOBALS['egw_info']['navbar']['logout']['icon_hover'] = $this->image_on('phpgwapi',Array('logout','nonav'),'-over');
|
||||
}
|
||||
|
||||
/*!
|
||||
@function app_header
|
||||
@abstract load header.inc.php for an application
|
||||
*/
|
||||
/**
|
||||
* load header.inc.php for an application
|
||||
*
|
||||
*/
|
||||
function app_header()
|
||||
{
|
||||
if (file_exists(EGW_APP_INC . '/header.inc.php'))
|
||||
@ -1217,10 +1219,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
@function egw_header
|
||||
@abstract load the phpgw header
|
||||
*/
|
||||
/**
|
||||
* load the phpgw header
|
||||
*
|
||||
*/
|
||||
function egw_header()
|
||||
{
|
||||
// add a content-type header to overwrite an existing default charset in apache (AddDefaultCharset directiv)
|
||||
@ -1261,7 +1263,7 @@
|
||||
*/
|
||||
function get_css()
|
||||
{
|
||||
$tpl = createObject('phpgwapi.Template', $this->get_tpl_dir('phpgwapi'));
|
||||
$tpl =& CreateObject('phpgwapi.Template', $this->get_tpl_dir('phpgwapi'));
|
||||
$tpl->set_file('css', 'css.tpl');
|
||||
$tpl->set_var($GLOBALS['egw_info']['theme']);
|
||||
$app_css = '';
|
||||
@ -1350,7 +1352,7 @@
|
||||
if ($GLOBALS['egw_info']['flags']['include_xajax'])
|
||||
{
|
||||
require_once(EGW_SERVER_ROOT.'/phpgwapi/inc/xajax.inc.php');
|
||||
$xajax = new xajax($GLOBALS['egw']->link('/xajax.php'));
|
||||
$xajax =& new xajax($GLOBALS['egw']->link('/xajax.php'));
|
||||
$xajax->registerFunction("doXMLHTTP");
|
||||
|
||||
$java_script .= $xajax->getJavascript();
|
||||
@ -1408,47 +1410,48 @@
|
||||
return @pack('H' . $len, $data);
|
||||
}
|
||||
|
||||
/*!
|
||||
@function encrypt
|
||||
@abstract encrypt data passed to the function
|
||||
@param $data data (string?) to be encrypted
|
||||
*/
|
||||
/**
|
||||
* encrypt data passed to the function
|
||||
*
|
||||
* @param $data data (string?) to be encrypted
|
||||
*/
|
||||
function encrypt($data)
|
||||
{
|
||||
return $GLOBALS['egw']->crypto->encrypt($data);
|
||||
}
|
||||
|
||||
/*!
|
||||
@function decrypt
|
||||
@abstract decrypt $data
|
||||
@param $data data to be decrypted
|
||||
*/
|
||||
/**
|
||||
* decrypt $data
|
||||
*
|
||||
* @param $data data to be decrypted
|
||||
*/
|
||||
function decrypt($data)
|
||||
{
|
||||
return $GLOBALS['egw']->crypto->decrypt($data);
|
||||
}
|
||||
|
||||
/*!
|
||||
@function encrypt_password
|
||||
@abstract legacy wrapper for newer auth class function, encrypt_password
|
||||
@abstract uses the encryption type set in setup and calls the appropriate encryption functions
|
||||
@param $password password to encrypt
|
||||
*/
|
||||
/**
|
||||
* legacy wrapper for newer auth class function, encrypt_password
|
||||
*
|
||||
* uses the encryption type set in setup and calls the appropriate encryption functions
|
||||
*
|
||||
* @param $password password to encrypt
|
||||
*/
|
||||
function encrypt_password($password,$sql=False)
|
||||
{
|
||||
if(!@is_object($GLOBALS['egw']->auth))
|
||||
{
|
||||
$GLOBALS['egw']->auth = CreateObject('phpgwapi.auth');
|
||||
$GLOBALS['egw']->auth =& CreateObject('phpgwapi.auth');
|
||||
}
|
||||
return $GLOBALS['egw']->auth->encrypt_password($password,$sql);
|
||||
}
|
||||
|
||||
/*!
|
||||
@function find_portal_order
|
||||
@abstract find the current position of the app is the users portal_order preference
|
||||
@param $app application id to find current position - required
|
||||
@discussion No discussion
|
||||
*/
|
||||
/**
|
||||
* find the current position of the app is the users portal_order preference
|
||||
*
|
||||
* @param $app application id to find current position - required
|
||||
* No discussion
|
||||
*/
|
||||
function find_portal_order($app)
|
||||
{
|
||||
if(!is_array($GLOBALS['egw_info']['user']['preferences']['portal_order']))
|
||||
@ -1468,20 +1471,20 @@
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*!
|
||||
@function hook
|
||||
@abstract temp wrapper to new hooks class
|
||||
*/
|
||||
/**
|
||||
* temp wrapper to new hooks class
|
||||
*
|
||||
*/
|
||||
function hook($location, $appname = '', $no_permission_check = False)
|
||||
{
|
||||
echo '$'."GLOBALS['phpgw']common->hook()".' has been replaced. Please change to the new $'."GLOBALS['phpgw']hooks->process()".'. For now this will act as a wrapper<br>';
|
||||
return $GLOBALS['egw']->hooks->process($location, $order, $no_permission_check);
|
||||
}
|
||||
|
||||
/*!
|
||||
@function hook_single
|
||||
@abstract temp wrapper to new hooks class
|
||||
*/
|
||||
/**
|
||||
* temp wrapper to new hooks class
|
||||
*
|
||||
*/
|
||||
// Note: $no_permission_check should *ONLY* be used when it *HAS* to be. (jengo)
|
||||
function hook_single($location, $appname = '', $no_permission_check = False)
|
||||
{
|
||||
@ -1489,10 +1492,10 @@
|
||||
return $GLOBALS['egw']->hooks->single($location, $order, $no_permission_check);
|
||||
}
|
||||
|
||||
/*!
|
||||
@function hook_count
|
||||
@abstract temp wrapper to new hooks class
|
||||
*/
|
||||
/**
|
||||
* temp wrapper to new hooks class
|
||||
*
|
||||
*/
|
||||
function hook_count($location)
|
||||
{
|
||||
echo '$'."GLOBALS['phpgw']common->hook_count()".' has been replaced. Please change to the new $'."GLOBALS['phpgw']hooks->count()".'. For now this will act as a wrapper<br>';
|
||||
@ -1502,23 +1505,23 @@
|
||||
/* Wrapper to the session->appsession() */
|
||||
function appsession($data = '##NOTHING##')
|
||||
{
|
||||
$this->debug_info[] = '$phpgw->common->appsession() is a depreciated function'
|
||||
. ' - use $phpgw->session->appsession() instead';
|
||||
$this->debug_info[] = "\$GLOBALS['egw']->common->appsession() is a depreciated function"
|
||||
. " - use \$GLOBALS['egw']->session->appsession() instead";
|
||||
|
||||
return $GLOBALS['egw']->session->appsession('default','',$data);
|
||||
}
|
||||
|
||||
/*!
|
||||
@function show_date
|
||||
@abstract show current date
|
||||
@param $t time - optional can be pulled from user preferences
|
||||
@param $format - optional can be pulled from user prefernces
|
||||
*/
|
||||
/**
|
||||
* show current date
|
||||
*
|
||||
* @param $t time - optional can be pulled from user preferences
|
||||
* @param $format - optional can be pulled from user prefernces
|
||||
*/
|
||||
function show_date($t = '', $format = '')
|
||||
{
|
||||
if(!is_object($GLOBALS['egw']->datetime))
|
||||
{
|
||||
$GLOBALS['egw']->datetime = createobject('phpgwapi.datetime');
|
||||
$GLOBALS['egw']->datetime =& CreateObject('phpgwapi.datetime');
|
||||
}
|
||||
|
||||
if (!$t)
|
||||
@ -1544,14 +1547,13 @@
|
||||
return adodb_date($format,$t);
|
||||
}
|
||||
|
||||
/*!
|
||||
@function dateformatorder
|
||||
@abstract
|
||||
@param $yearstr year - string
|
||||
@param $monthstr month - string
|
||||
@param $day day - string
|
||||
@param $add_seperator boolean defaults to false
|
||||
*/
|
||||
/**
|
||||
* @abstract
|
||||
* @param $yearstr year - string
|
||||
* @param $monthstr month - string
|
||||
* @param $day day - string
|
||||
* @param $add_seperator boolean defaults to false
|
||||
*/
|
||||
function dateformatorder($yearstr,$monthstr,$daystr,$add_seperator = False)
|
||||
{
|
||||
$dateformat = strtolower($GLOBALS['egw_info']['user']['preferences']['common']['dateformat']);
|
||||
@ -1572,13 +1574,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
@function formattime
|
||||
@abstract format the time takes settings from user preferences
|
||||
@param $hour hour
|
||||
@param $min minutes
|
||||
@param $sec defaults to ''
|
||||
*/
|
||||
/**
|
||||
* format the time takes settings from user preferences
|
||||
*
|
||||
* @param $hour hour
|
||||
* @param $min minutes
|
||||
* @param $sec defaults to ''
|
||||
*/
|
||||
function formattime($hour,$min,$sec='')
|
||||
{
|
||||
$h12 = $hour;
|
||||
@ -1618,11 +1620,11 @@
|
||||
}
|
||||
|
||||
// This is not the best place for it, but it needs to be shared bewteen Aeromail and SM
|
||||
/*!
|
||||
@function get_email_passwd_ex
|
||||
@abstract uses code in /email class msg to obtain the appropriate password for email
|
||||
@param (none - it will abtain the info it needs on its own)
|
||||
*/
|
||||
/**
|
||||
* uses code in /email class msg to obtain the appropriate password for email
|
||||
*
|
||||
* @param (none - it will abtain the info it needs on its own)
|
||||
*/
|
||||
/*
|
||||
function get_email_passwd_ex()
|
||||
{
|
||||
@ -1633,7 +1635,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
$GLOBALS['egw']->msg = CreateObject('email.mail_msg');
|
||||
$GLOBALS['egw']->msg =& CreateObject('email.mail_msg');
|
||||
$do_free_me = True;
|
||||
}
|
||||
// use the Msg class to obtain the appropriate password
|
||||
@ -1656,13 +1658,13 @@
|
||||
*/
|
||||
|
||||
// This is not the best place for it, but it needs to be shared bewteen Aeromail and SM
|
||||
/*!
|
||||
@function create_emailpreferences
|
||||
@abstract create email preferences
|
||||
@discussion This is not the best place for it, but it needs to be shared between Aeromail and SM
|
||||
@param $prefs
|
||||
@param $account_id -optional defaults to : phpgw_info['user']['account_id']
|
||||
*/
|
||||
/**
|
||||
* create email preferences
|
||||
*
|
||||
* This is not the best place for it, but it needs to be shared between Aeromail and SM
|
||||
* @param $prefs
|
||||
* @param $account_id -optional defaults to : phpgw_info['user']['account_id']
|
||||
*/
|
||||
function create_emailpreferences($prefs='',$accountid='')
|
||||
{
|
||||
return $GLOBALS['egw']->preferences->create_email_preferences($accountid);
|
||||
@ -1673,7 +1675,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
$GLOBALS['egw']->msg = CreateObject('email.mail_msg');
|
||||
$GLOBALS['egw']->msg =& CreateObject('email.mail_msg');
|
||||
$do_free_me = True;
|
||||
}
|
||||
|
||||
@ -1772,11 +1774,11 @@
|
||||
*/
|
||||
|
||||
// This will be moved into the applications area.
|
||||
/*!
|
||||
@function check_code
|
||||
@abstract ?
|
||||
@discussion This will be moved into the applications area
|
||||
*/
|
||||
/**
|
||||
* ?
|
||||
*
|
||||
* This will be moved into the applications area
|
||||
*/
|
||||
function check_code($code)
|
||||
{
|
||||
$s = '<br>';
|
||||
@ -1863,13 +1865,13 @@
|
||||
}
|
||||
return $s;
|
||||
}
|
||||
/*!
|
||||
@function phpgw_error
|
||||
@abstract process error message
|
||||
@param $error error
|
||||
@param $line line
|
||||
@param $file file
|
||||
*/
|
||||
/**
|
||||
* process error message
|
||||
*
|
||||
* @param $error error
|
||||
* @param $line line
|
||||
* @param $file file
|
||||
*/
|
||||
function phpgw_error($error,$line = '', $file = '')
|
||||
{
|
||||
echo '<p><b>eGroupWare internal error:</b><p>'.$error;
|
||||
@ -1885,11 +1887,11 @@
|
||||
exit;
|
||||
}
|
||||
|
||||
/*!
|
||||
@function create_phpcode_from_array
|
||||
@abstract create phpcode from array
|
||||
@param $array - array
|
||||
*/
|
||||
/**
|
||||
* create phpcode from array
|
||||
*
|
||||
* @param $array - array
|
||||
*/
|
||||
function create_phpcode_from_array($array)
|
||||
{
|
||||
while (list($key, $val) = each($array))
|
||||
@ -1934,11 +1936,11 @@
|
||||
}
|
||||
|
||||
// This will return the full phpgw_info array, used for debugging
|
||||
/*!
|
||||
@function debug_list_array_contents
|
||||
@abstract return the full phpgw_info array for debugging
|
||||
@param array - array
|
||||
*/
|
||||
/**
|
||||
* return the full phpgw_info array for debugging
|
||||
*
|
||||
* @param array - array
|
||||
*/
|
||||
function debug_list_array_contents($array)
|
||||
{
|
||||
while (list($key, $val) = each($array))
|
||||
@ -1978,10 +1980,10 @@
|
||||
}
|
||||
|
||||
// This will return a list of functions in the API
|
||||
/*!
|
||||
@function debug_list_core_functions
|
||||
@abstract return a list of functionsin the API
|
||||
*/
|
||||
/**
|
||||
* return a list of functionsin the API
|
||||
*
|
||||
*/
|
||||
function debug_list_core_functions()
|
||||
{
|
||||
echo '<br><b>core functions</b><br>';
|
||||
@ -1992,10 +1994,10 @@
|
||||
}
|
||||
|
||||
// This will return a value for the next id an app/class may need to insert values into ldap.
|
||||
/*!
|
||||
@function next_id
|
||||
@abstract return the next higher value for an integer, and increment it in the db.
|
||||
*/
|
||||
/**
|
||||
* return the next higher value for an integer, and increment it in the db.
|
||||
*
|
||||
*/
|
||||
function next_id($appname,$min=0,$max=0)
|
||||
{
|
||||
if (!$appname)
|
||||
@ -2034,10 +2036,10 @@
|
||||
|
||||
// This will return a value for the last id entered, which an app may need to check
|
||||
// values for ldap.
|
||||
/*!
|
||||
@function last_id
|
||||
@abstract return the current id in the next_id table for a particular app/class.
|
||||
*/
|
||||
/**
|
||||
* return the current id in the next_id table for a particular app/class.
|
||||
*
|
||||
*/
|
||||
function last_id($appname,$min=0,$max=0)
|
||||
{
|
||||
if (!$appname)
|
||||
|
@ -28,6 +28,7 @@
|
||||
var $appname;
|
||||
var $config_data; // actual config-data
|
||||
var $read_data; // config-data as read from db
|
||||
var $table = 'egw_config';
|
||||
|
||||
function config($appname = '')
|
||||
{
|
||||
@ -44,7 +45,6 @@
|
||||
$this->db = clone($GLOBALS['egw_setup']->db);
|
||||
}
|
||||
$this->db->set_app('phpgwapi');
|
||||
$this->table = 'phpgw_config';
|
||||
$this->appname = $appname;
|
||||
}
|
||||
|
||||
@ -75,13 +75,12 @@
|
||||
|
||||
/**
|
||||
* updates the whole repository for $this->appname, you have to call read_repository() before (!)
|
||||
*
|
||||
*/
|
||||
function save_repository()
|
||||
{
|
||||
if (is_array($this->config_data))
|
||||
{
|
||||
$this->db->lock(array('phpgw_config'));
|
||||
$this->db->lock(array($this->table));
|
||||
foreach($this->config_data as $name => $value)
|
||||
{
|
||||
$this->save_value($name,$value);
|
||||
@ -137,7 +136,7 @@
|
||||
*/
|
||||
function delete_repository()
|
||||
{
|
||||
$this->db->delete("delete from phpgw_config where config_app='" . $this->appname . "'",__LINE__,__FILE__);
|
||||
$this->db->delete($this->table,array('config_app' => $this->appname),__LINE__,__FILE__);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -149,6 +148,7 @@
|
||||
{
|
||||
unset($this->config_data[$variable_name]);
|
||||
}
|
||||
|
||||
/**
|
||||
* sets a single value in the repositry, you need to call save_repository after
|
||||
*
|
||||
@ -160,4 +160,3 @@
|
||||
$this->config_data[$variable_name] = $variable_data;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -39,9 +39,9 @@
|
||||
*/
|
||||
function db_backup()
|
||||
{
|
||||
if (is_object($GLOBALS['phpgw_setup']->oProc)) // schema_proc already instanciated, use it
|
||||
if (is_object($GLOBALS['egw_setup']->oProc)) // schema_proc already instanciated, use it
|
||||
{
|
||||
$this->schema_proc = $GLOBALS['phpgw_setup']->oProc;
|
||||
$this->schema_proc = $GLOBALS['egw_setup']->oProc;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -50,25 +50,24 @@
|
||||
|
||||
$this->db = $this->schema_proc->m_odb;
|
||||
$this->adodb = &$GLOBALS['egw']->ADOdb;
|
||||
if (is_object($GLOBALS['phpgw_setup'])) // called from setup
|
||||
if (is_object($GLOBALS['egw_setup'])) // called from setup
|
||||
{
|
||||
$tables = $this->adodb->MetaTables('TABLES');
|
||||
if (in_array('phpgw_config',$tables))
|
||||
if ($GLOBALS['egw_setup']->config_table)
|
||||
{
|
||||
$this->db->query("SELECT config_value FROM phpgw_config WHERE config_app='phpgwapi' AND config_name='backup_dir'",__LINE__,__FILE__);
|
||||
$this->db->query("SELECT config_value FROM {$GLOBALS['egw_setup']->config_table} WHERE config_app='phpgwapi' AND config_name='backup_dir'",__LINE__,__FILE__);
|
||||
$this->db->next_record();
|
||||
if (!($this->backup_dir = $this->db->f(0)))
|
||||
{
|
||||
$this->db->query("SELECT config_value FROM phpgw_config WHERE config_app='phpgwapi' AND config_name='files_dir'",__LINE__,__FILE__);
|
||||
$this->db->query("SELECT config_value FROM {$GLOBALS['egw_setup']->config_table} WHERE config_app='phpgwapi' AND config_name='files_dir'",__LINE__,__FILE__);
|
||||
$this->db->next_record();
|
||||
$this->backup_dir = $this->db->f(0).'/db_backup';
|
||||
}
|
||||
$this->db->query("SELECT config_value FROM phpgw_config WHERE config_app='phpgwapi' AND config_name='system_charset'",__LINE__,__FILE__);
|
||||
$this->db->query("SELECT config_value FROM {$GLOBALS['egw_setup']->config_table} WHERE config_app='phpgwapi' AND config_name='system_charset'",__LINE__,__FILE__);
|
||||
$this->db->next_record();
|
||||
$this->charset = $this->db->f(0);
|
||||
if (!$this->charset)
|
||||
{
|
||||
$this->db->query("SELECT content FROM phpgw_lang WHERE message_id='charset' AND app_name='common' AND lang!='en'",__LINE__,__FILE__);
|
||||
$this->db->query("SELECT content FROM {$GLOBALS['egw_setup']->lang_table} WHERE message_id='charset' AND app_name='common' AND lang!='en'",__LINE__,__FILE__);
|
||||
$this->db->next_record();
|
||||
$this->charset = $this->db->f(0);
|
||||
}
|
||||
|
@ -40,7 +40,7 @@
|
||||
* @var egw_db-object $db instance of the db-object
|
||||
*/
|
||||
var $db;
|
||||
var $config_table = 'phpgw_config';
|
||||
var $config_table = 'egw_config';
|
||||
|
||||
/**
|
||||
* Constructor: Instantiates the sub-classes
|
||||
|
@ -27,6 +27,8 @@
|
||||
'clearstack',
|
||||
'astable'
|
||||
);
|
||||
var $log_table = 'egw_log';
|
||||
var $msg_table = 'egw_log_msg';
|
||||
|
||||
function message($parms)
|
||||
{
|
||||
@ -104,19 +106,19 @@
|
||||
|
||||
function commit()
|
||||
{
|
||||
$db = $GLOBALS['phpgw']->db;
|
||||
// $db->lock('phpgw_log');
|
||||
$db->query("insert into phpgw_log (log_date, log_user, log_app, log_severity) values "
|
||||
."('". $GLOBALS['phpgw']->db->to_timestamp(time())
|
||||
."','".(int)$GLOBALS['phpgw']->session->account_id
|
||||
."','".$GLOBALS['phpgw_info']['flags']['currentapp']."'"
|
||||
$db = clone($GLOBALS['egw']->db);
|
||||
// $db->lock($this->log_table);
|
||||
$db->query("insert into $this->log_table (log_date, log_user, log_app, log_severity) values "
|
||||
."('". $GLOBALS['egw']->db->to_timestamp(time())
|
||||
."','".(int)$GLOBALS['egw']->session->account_id
|
||||
."','".$GLOBALS['egw_info']['flags']['currentapp']."'"
|
||||
.",'".$this->severity()."'"
|
||||
.")"
|
||||
,__LINE__,__FILE__
|
||||
);
|
||||
|
||||
$log_id = $db->get_last_insert_id('phpgw_log','log_id');
|
||||
// $db->query('select max(log_id) as lid from phpgw_log');
|
||||
$log_id = $db->get_last_insert_id($this->log_table,'log_id');
|
||||
// $db->query('select max(log_id) as lid from $this->log_table');
|
||||
// $db->next_record();
|
||||
// $log_id = $db->f('lid');
|
||||
// $db->unlock();
|
||||
@ -125,12 +127,12 @@
|
||||
for ($i = 0; $i < count($errorstack); $i++)
|
||||
{
|
||||
$err = $errorstack[$i];
|
||||
$db->query("insert into phpgw_log_msg "
|
||||
$db->query("insert into $this->msg_table "
|
||||
."(Log_msg_log_id, log_msg_seq_no, log_msg_date, log_msg_severity, "
|
||||
."log_msg_code, log_msg_msg, log_msg_parms, log_msg_file, log_msg_line) values "
|
||||
."(" . $log_id
|
||||
."," . $i
|
||||
.", '" . $GLOBALS['phpgw']->db->to_timestamp($err->timestamp)
|
||||
.", '" . $GLOBALS['egw']->db->to_timestamp($err->timestamp)
|
||||
."', '". $err->severity . "'"
|
||||
.", '". $err->code . "'"
|
||||
.", '". $db->db_addslashes($err->msg) . "'"
|
||||
@ -194,7 +196,7 @@
|
||||
|
||||
$html .= "\t<tr bgcolor=".'"'.$color.'"'.">\n";
|
||||
$html .= "\t\t<td align=center>".$i."</td>\n";
|
||||
$html .= "\t\t<td>".$GLOBALS['phpgw']->common->show_date($err->timestamp)."</td>\n";
|
||||
$html .= "\t\t<td>".$GLOBALS['egw']->common->show_date($err->timestamp)."</td>\n";
|
||||
$html .= "\t\t<td>".$err->app."  </td>\n";
|
||||
$html .= "\t\t<td align=center>".$err->severity."</td>\n";
|
||||
$html .= "\t\t<td>".$err->code."</td>\n";
|
||||
|
@ -27,6 +27,8 @@
|
||||
'clearstack',
|
||||
'astable'
|
||||
);
|
||||
var $log_table = 'egw_log';
|
||||
var $msg_table = 'egw_log_msg';
|
||||
|
||||
function message($etext,$p0='',$p1='',$p2='',$p3='',$p4='',$p5='',$p6='',$p7='',$p8='',$p9='')
|
||||
{
|
||||
@ -82,11 +84,11 @@
|
||||
|
||||
function commit()
|
||||
{
|
||||
$db = $GLOBALS['phpgw']->db;
|
||||
$db->query("insert into phpgw_log (log_date, log_user, log_app, log_severity) values "
|
||||
."('". $GLOBALS['phpgw']->db->to_timestamp(time())
|
||||
."','".$GLOBALS['phpgw']->session->account_id
|
||||
."','".$GLOBALS['phpgw_info']['flags']['currentapp']."'"
|
||||
$db = clone($GLOBALS['egw']->db);
|
||||
$db->query("insert into $this->log_table (log_date, log_user, log_app, log_severity) values "
|
||||
."('". $GLOBALS['egw']->db->to_timestamp(time())
|
||||
."','".$GLOBALS['egw']->session->account_id
|
||||
."','".$GLOBALS['egw_info']['flags']['currentapp']."'"
|
||||
.",'".$this->severity()."'"
|
||||
.")"
|
||||
,__LINE__,__FILE__);
|
||||
@ -95,11 +97,11 @@
|
||||
for ($i = 0; $i < count($errorstack); $i++)
|
||||
{
|
||||
$err = $errorstack[$i];
|
||||
$db->query("insert into phpgw_log_msg "
|
||||
$db->query("insert into $this->msg_table "
|
||||
. "(log_msg_seq_no, log_msg_date, "
|
||||
. "log_msg_severity, log_msg_code, log_msg_msg, log_msg_parms) values "
|
||||
. "(" . $i
|
||||
. ", '" . $GLOBALS['phpgw']->db->to_timestamp($err->timestamp)
|
||||
. ", '" . $GLOBALS['egw']->db->to_timestamp($err->timestamp)
|
||||
. "', '". $err->severity . "'"
|
||||
. ", '". $err->code . "'"
|
||||
. ", '". $err->msg . "'"
|
||||
@ -162,8 +164,8 @@
|
||||
|
||||
$html .= "\t<tr bgcolor=".'"'.$color.'"'.">\n";
|
||||
$html .= "\t\t<td align=center>".$i."</td>\n";
|
||||
$html .= "\t\t<td>".$GLOBALS['phpgw']->common->show_date($err->timestamp)."</td>\n";
|
||||
$html .= "\t\t<td>".$GLOBALS['phpgw_info']['flags']['currentapp']."  </td>\n";
|
||||
$html .= "\t\t<td>".$GLOBALS['egw']->common->show_date($err->timestamp)."</td>\n";
|
||||
$html .= "\t\t<td>".$GLOBALS['egw_info']['flags']['currentapp']."  </td>\n";
|
||||
$html .= "\t\t<td align=center>".$err->severity."</td>\n";
|
||||
$html .= "\t\t<td>".$err->code."</td>\n";
|
||||
$html .= "\t\t<td>".$err->langmsg()."</td>\n";
|
||||
|
@ -580,7 +580,7 @@
|
||||
$this->log_access($this->sessionid,$login,$user_ip,$this->account_id);
|
||||
}
|
||||
$this->appsession('account_previous_login','phpgwapi',$GLOBALS['egw']->auth->previous_login);
|
||||
$GLOBALS['egw']->auth->update_lastlogin($this->account_id,$user_ip);
|
||||
$GLOBALS['egw']->accounts->update_lastlogin($this->account_id,$user_ip);
|
||||
$GLOBALS['egw']->db->transaction_commit();
|
||||
|
||||
//if (!$this->sessionid) echo "<p>session::create(login='$login') = '$this->sessionid': lid='$this->account_lid', domain='$this->account_domain'</p>\n";
|
||||
@ -873,7 +873,7 @@
|
||||
$this->log_access($this->sessionid,$login,$user_ip,$this->account_id);
|
||||
|
||||
$this->appsession('account_previous_login','phpgwapi',$GLOBALS['egw']->auth->previous_login);
|
||||
$GLOBALS['egw']->auth->update_lastlogin($this->account_id,$user_ip);
|
||||
$GLOBALS['egw']->accounts->update_lastlogin($this->account_id,$user_ip);
|
||||
$GLOBALS['egw']->db->transaction_commit();
|
||||
|
||||
return array($this->sessionid,$this->kp3);
|
||||
|
@ -53,7 +53,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
$GLOBALS['phpgw']->db->query("SELECT config_value FROM phpgw_config WHERE config_app='phpgwapi' AND config_name='system_charset'",__LINE__,__FILE__);
|
||||
$GLOBALS['phpgw']->db->query("SELECT config_value FROM egw_config WHERE config_app='phpgwapi' AND config_name='system_charset'",__LINE__,__FILE__);
|
||||
if($GLOBALS['phpgw']->db->next_record())
|
||||
{
|
||||
$this->system_charset = $GLOBALS['phpgw']->db->f(0);
|
||||
|
@ -60,7 +60,7 @@
|
||||
$this->db->set_app('phpgwapi');
|
||||
$this->lang_table = 'phpgw_lang';
|
||||
$this->languages_table = 'phpgw_languages';
|
||||
$this->config_table = 'phpgw_config';
|
||||
$this->config_table = 'egw_config';
|
||||
|
||||
if (!isset($GLOBALS['egw_setup']))
|
||||
{
|
||||
|
@ -131,7 +131,7 @@
|
||||
/*
|
||||
function system_listApps()
|
||||
{
|
||||
$GLOBALS['phpgw']->db->query("SELECT * FROM phpgw_applications WHERE app_enabled<3",__LINE__,__FILE__);
|
||||
$GLOBALS['phpgw']->db->query("SELECT * FROM egw_applications WHERE app_enabled<3",__LINE__,__FILE__);
|
||||
$apps = array();
|
||||
if($GLOBALS['phpgw']->db->num_rows())
|
||||
{
|
||||
|
@ -904,7 +904,7 @@
|
||||
function _xmlrpcs_listApps($server,$m)
|
||||
{
|
||||
$m->getParam(0);
|
||||
$GLOBALS['egw']->db->query("SELECT * FROM phpgw_applications WHERE app_enabled<3",__LINE__,__FILE__);
|
||||
$GLOBALS['egw']->db->query("SELECT * FROM egw_applications WHERE app_enabled<3",__LINE__,__FILE__);
|
||||
if($GLOBALS['egw']->db->num_rows())
|
||||
{
|
||||
while($GLOBALS['egw']->db->next_record())
|
||||
|
@ -150,9 +150,20 @@
|
||||
$oProc->query("INSERT INTO phpgw_languages (lang_id, lang_name) VALUES ('zt','Chinese(Taiwan)')");
|
||||
$oProc->query("INSERT INTO phpgw_languages (lang_id, lang_name) VALUES ('zu','Zulu')");
|
||||
|
||||
$oProc->query("INSERT INTO phpgw_config (config_app, config_name, config_value) VALUES ('phpgwapi','sessions_checkip','True')");
|
||||
$oProc->query("INSERT INTO phpgw_config (config_app, config_name, config_value) VALUES ('phpgwapi','image_type','1')");
|
||||
$oProc->query("INSERT INTO phpgw_config (config_app, config_name, config_value) VALUES ('phpgwapi','asyncservice','fallback')");
|
||||
|
||||
foreach(array(
|
||||
'sessions_checkip' => 'True',
|
||||
'image_type' => '1',
|
||||
'asyncservice' => 'fallback',
|
||||
) as $name => $value)
|
||||
{
|
||||
$oProc->insert($GLOBALS['egw_setup']->config_table,array(
|
||||
'config_value' => $value,
|
||||
),array(
|
||||
'config_app' => 'phpgwapi',
|
||||
'config_name' => $name,
|
||||
),__FILE__,__LINE__);
|
||||
}
|
||||
|
||||
$oProc->query("INSERT INTO phpgw_interserv(server_name,server_host,server_url,trust_level,trust_rel,server_mode) VALUES ('eGW demo',NULL,'http://www.egroupware.org/egroupware/xmlrpc.php',99,0,'xmlrpc')");
|
||||
|
||||
|
@ -13,17 +13,17 @@
|
||||
|
||||
/* Basic information about this app */
|
||||
$setup_info['phpgwapi']['name'] = 'phpgwapi';
|
||||
$setup_info['phpgwapi']['title'] = 'phpgwapi';
|
||||
$setup_info['phpgwapi']['version'] = '1.0.1.012';
|
||||
$setup_info['phpgwapi']['title'] = 'API';
|
||||
$setup_info['phpgwapi']['version'] = '1.0.1.014';
|
||||
$setup_info['phpgwapi']['versions']['current_header'] = '1.28';
|
||||
$setup_info['phpgwapi']['enable'] = 3;
|
||||
$setup_info['phpgwapi']['app_order'] = 1;
|
||||
|
||||
/* The tables this app creates */
|
||||
$setup_info['phpgwapi']['tables'][] = 'phpgw_config';
|
||||
$setup_info['phpgwapi']['tables'][] = 'phpgw_applications';
|
||||
$setup_info['phpgwapi']['tables'][] = 'phpgw_acl';
|
||||
$setup_info['phpgwapi']['tables'][] = 'phpgw_accounts';
|
||||
$setup_info['phpgwapi']['tables'][] = 'egw_config';
|
||||
$setup_info['phpgwapi']['tables'][] = 'egw_applications';
|
||||
$setup_info['phpgwapi']['tables'][] = 'egw_acl';
|
||||
$setup_info['phpgwapi']['tables'][] = 'egw_accounts';
|
||||
$setup_info['phpgwapi']['tables'][] = 'phpgw_preferences';
|
||||
$setup_info['phpgwapi']['tables'][] = 'phpgw_sessions';
|
||||
$setup_info['phpgwapi']['tables'][] = 'phpgw_app_sessions';
|
||||
@ -35,8 +35,8 @@
|
||||
$setup_info['phpgwapi']['tables'][] = 'phpgw_categories';
|
||||
$setup_info['phpgwapi']['tables'][] = 'phpgw_addressbook';
|
||||
$setup_info['phpgwapi']['tables'][] = 'phpgw_addressbook_extra';
|
||||
$setup_info['phpgwapi']['tables'][] = 'phpgw_log';
|
||||
$setup_info['phpgwapi']['tables'][] = 'phpgw_log_msg';
|
||||
$setup_info['phpgwapi']['tables'][] = 'egw_log';
|
||||
$setup_info['phpgwapi']['tables'][] = 'egw_log_msg';
|
||||
$setup_info['phpgwapi']['tables'][] = 'phpgw_interserv';
|
||||
$setup_info['phpgwapi']['tables'][] = 'egw_vfs';
|
||||
$setup_info['phpgwapi']['tables'][] = 'phpgw_history_log';
|
||||
|
@ -13,7 +13,7 @@
|
||||
// $Source$
|
||||
|
||||
$phpgw_baseline = array(
|
||||
'phpgw_config' => array(
|
||||
'egw_config' => array(
|
||||
'fd' => array(
|
||||
'config_app' => array('type' => 'varchar','precision' => '50','nullable' => False),
|
||||
'config_name' => array('type' => 'varchar','precision' => '255','nullable' => False),
|
||||
@ -24,7 +24,7 @@
|
||||
'ix' => array(),
|
||||
'uc' => array()
|
||||
),
|
||||
'phpgw_applications' => array(
|
||||
'egw_applications' => array(
|
||||
'fd' => array(
|
||||
'app_id' => array('type' => 'auto','precision' => '4','nullable' => False),
|
||||
'app_name' => array('type' => 'varchar','precision' => '25','nullable' => False),
|
||||
@ -38,7 +38,7 @@
|
||||
'ix' => array(array('app_enabled','app_order')),
|
||||
'uc' => array('app_name')
|
||||
),
|
||||
'phpgw_acl' => array(
|
||||
'egw_acl' => array(
|
||||
'fd' => array(
|
||||
'acl_appname' => array('type' => 'varchar','precision' => '50','nullable' => False),
|
||||
'acl_location' => array('type' => 'varchar','precision' => '255','nullable' => False),
|
||||
@ -50,7 +50,7 @@
|
||||
'ix' => array('acl_account',array('acl_location','acl_account'),array('acl_appname','acl_account')),
|
||||
'uc' => array()
|
||||
),
|
||||
'phpgw_accounts' => array(
|
||||
'egw_accounts' => array(
|
||||
'fd' => array(
|
||||
'account_id' => array('type' => 'auto','nullable' => False),
|
||||
'account_lid' => array('type' => 'varchar','precision' => '25','nullable' => False),
|
||||
@ -262,7 +262,7 @@
|
||||
'ix' => array(),
|
||||
'uc' => array()
|
||||
),
|
||||
'phpgw_log' => array(
|
||||
'egw_log' => array(
|
||||
'fd' => array(
|
||||
'log_id' => array('type' => 'auto','precision' => '4','nullable' => False),
|
||||
'log_date' => array('type' => 'timestamp','nullable' => False),
|
||||
@ -275,7 +275,7 @@
|
||||
'ix' => array(),
|
||||
'uc' => array()
|
||||
),
|
||||
'phpgw_log_msg' => array(
|
||||
'egw_log_msg' => array(
|
||||
'fd' => array(
|
||||
'log_msg_log_id' => array('type' => 'int','precision' => '4','nullable' => False),
|
||||
'log_msg_seq_no' => array('type' => 'int','precision' => '4','nullable' => False),
|
||||
@ -448,7 +448,7 @@
|
||||
'quota' => array('type' => 'int','precision' => '4','nullable' => False)
|
||||
),
|
||||
'pk' => array('account_id'),
|
||||
'fk' => array('account_id' => array('phpgw_accounts' => 'account_id')),
|
||||
'fk' => array('account_id' => array('egw_accounts' => 'account_id')),
|
||||
'ix' => array(),
|
||||
'uc' => array()
|
||||
),
|
||||
@ -459,7 +459,7 @@
|
||||
'acl_rights' => array('type' => 'int','precision' => '4','nullable' => False)
|
||||
),
|
||||
'pk' => array('account_id','file_id'),
|
||||
'fk' => array('account_id' => array('phpgw_accounts' => 'account_id'),'file_id' => array('phpgw_vfs2_files' => 'file_id')),
|
||||
'fk' => array('account_id' => array('egw_accounts' => 'account_id'),'file_id' => array('phpgw_vfs2_files' => 'file_id')),
|
||||
'ix' => array(),
|
||||
'uc' => array()
|
||||
),
|
||||
|
@ -43,12 +43,12 @@
|
||||
$test[] = '1.0.0.004';
|
||||
function phpgwapi_upgrade1_0_0_004()
|
||||
{
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_async','id','async_id');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_async','next','async_next');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_async','times','async_times');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_async','method','async_method');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_async','data','async_data');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_async','account_id','async_account_id');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_async','id','async_id');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_async','next','async_next');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_async','times','async_times');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_async','method','async_method');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_async','data','async_data');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_async','account_id','async_account_id');
|
||||
|
||||
$GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.0.1.001';
|
||||
return $GLOBALS['setup_info']['phpgwapi']['currentver'];
|
||||
@ -93,12 +93,12 @@
|
||||
function phpgwapi_upgrade1_0_1_001()
|
||||
{
|
||||
// removing the ACL entries of deleted accounts
|
||||
$GLOBALS['phpgw_setup']->setup_account_object();
|
||||
$GLOBALS['egw_setup']->setup_account_object();
|
||||
if (($all_accounts = $GLOBALS['phpgw']->accounts->search(array('type'=>'both'))))
|
||||
{
|
||||
$all_accounts = array_keys($all_accounts);
|
||||
$GLOBALS['phpgw_setup']->oProc->query("DELETE FROM phpgw_acl WHERE acl_account NOT IN (".implode(',',$all_accounts).")",__LINE__,__FILE__);
|
||||
$GLOBALS['phpgw_setup']->oProc->query("DELETE FROM phpgw_acl WHERE acl_appname='phpgw_group' AND acl_location NOT IN ('".implode("','",$all_accounts)."')",__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->oProc->query("DELETE FROM phpgw_acl WHERE acl_account NOT IN (".implode(',',$all_accounts).")",__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->oProc->query("DELETE FROM phpgw_acl WHERE acl_appname='phpgw_group' AND acl_location NOT IN ('".implode("','",$all_accounts)."')",__LINE__,__FILE__);
|
||||
}
|
||||
$GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.0.1.002';
|
||||
return $GLOBALS['setup_info']['phpgwapi']['currentver'];
|
||||
@ -108,26 +108,26 @@
|
||||
$test[] = '1.0.1.002';
|
||||
function phpgwapi_upgrade1_0_1_002()
|
||||
{
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','file_id','vfs_file_id');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','owner_id','vfs_owner_id');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','createdby_id','vfs_createdby_id');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','modifiedby_id','vfs_modifiedby_id');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','created','vfs_created');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','modified','vfs_modified');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','size','vfs_size');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','mime_type','vfs_mime_type');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','deleteable','vfs_deleteable');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','comment','vfs_comment');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','app','vfs_app');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','directory','vfs_directory');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','name','vfs_name');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','link_directory','vfs_link_directory');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','link_name','vfs_link_name');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','version','vfs_version');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameColumn('phpgw_vfs','content','vfs_content');
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameTable('phpgw_vfs','egw_vfs');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','file_id','vfs_file_id');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','owner_id','vfs_owner_id');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','createdby_id','vfs_createdby_id');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','modifiedby_id','vfs_modifiedby_id');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','created','vfs_created');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','modified','vfs_modified');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','size','vfs_size');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','mime_type','vfs_mime_type');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','deleteable','vfs_deleteable');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','comment','vfs_comment');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','app','vfs_app');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','directory','vfs_directory');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','name','vfs_name');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','link_directory','vfs_link_directory');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','link_name','vfs_link_name');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','version','vfs_version');
|
||||
$GLOBALS['egw_setup']->oProc->RenameColumn('phpgw_vfs','content','vfs_content');
|
||||
$GLOBALS['egw_setup']->oProc->RenameTable('phpgw_vfs','egw_vfs');
|
||||
|
||||
$GLOBALS['phpgw_setup']->oProc->RefreshTable('egw_vfs',array(
|
||||
$GLOBALS['egw_setup']->oProc->RefreshTable('egw_vfs',array(
|
||||
'fd' => array(
|
||||
'vfs_file_id' => array('type' => 'auto','nullable' => False),
|
||||
'vfs_owner_id' => array('type' => 'int','precision' => '4','nullable' => False),
|
||||
@ -160,7 +160,7 @@
|
||||
$test[] = '1.0.1.003';
|
||||
function phpgwapi_upgrade1_0_1_003()
|
||||
{
|
||||
$GLOBALS['phpgw_setup']->oProc->CreateTable(
|
||||
$GLOBALS['egw_setup']->oProc->CreateTable(
|
||||
'egw_api_content_history', array(
|
||||
'fd' => array(
|
||||
'sync_appname' => array('type' => 'varchar','precision' => '60','nullable' => False),
|
||||
@ -186,13 +186,13 @@
|
||||
$test[] = '1.0.1.004';
|
||||
function phpgwapi_upgrade1_0_1_004()
|
||||
{
|
||||
$GLOBALS['phpgw_setup']->oProc->AlterColumn('egw_api_content_history','sync_added',array(
|
||||
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_api_content_history','sync_added',array(
|
||||
'type' => 'timestamp'
|
||||
));
|
||||
$GLOBALS['phpgw_setup']->oProc->AlterColumn('egw_api_content_history','sync_modified',array(
|
||||
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_api_content_history','sync_modified',array(
|
||||
'type' => 'timestamp'
|
||||
));
|
||||
$GLOBALS['phpgw_setup']->oProc->AlterColumn('egw_api_content_history','sync_deleted',array(
|
||||
$GLOBALS['egw_setup']->oProc->AlterColumn('egw_api_content_history','sync_deleted',array(
|
||||
'type' => 'timestamp'
|
||||
));
|
||||
|
||||
@ -207,7 +207,7 @@
|
||||
* VFS version 2 *
|
||||
\*********************************************************************/
|
||||
|
||||
$GLOBALS['phpgw_setup']->oProc->CreateTable(
|
||||
$GLOBALS['egw_setup']->oProc->CreateTable(
|
||||
'phpgw_vfs2_mimetypes', array(
|
||||
'fd' => array(
|
||||
'mime_id' => array('type' => 'auto','nullable' => False),
|
||||
@ -225,7 +225,7 @@
|
||||
)
|
||||
);
|
||||
|
||||
$GLOBALS['phpgw_setup']->oProc->CreateTable(
|
||||
$GLOBALS['egw_setup']->oProc->CreateTable(
|
||||
'phpgw_vfs2_files' , array(
|
||||
'fd' => array(
|
||||
'file_id' => array('type' => 'auto','nullable' => False),
|
||||
@ -254,7 +254,7 @@
|
||||
)
|
||||
);
|
||||
|
||||
$GLOBALS['phpgw_setup']->oProc->CreateTable(
|
||||
$GLOBALS['egw_setup']->oProc->CreateTable(
|
||||
'phpgw_vfs2_customfields' , array(
|
||||
'fd' => array(
|
||||
'customfield_id' => array('type' => 'auto','nullable' => False),
|
||||
@ -271,7 +271,7 @@
|
||||
)
|
||||
);
|
||||
|
||||
$GLOBALS['phpgw_setup']->oProc->CreateTable(
|
||||
$GLOBALS['egw_setup']->oProc->CreateTable(
|
||||
'phpgw_vfs2_quota' , array(
|
||||
'fd' => array(
|
||||
'account_id' => array('type' => 'int','precision' => 4,'nullable' => false),
|
||||
@ -284,7 +284,7 @@
|
||||
)
|
||||
);
|
||||
|
||||
$GLOBALS['phpgw_setup']->oProc->CreateTable(
|
||||
$GLOBALS['egw_setup']->oProc->CreateTable(
|
||||
'phpgw_vfs2_shares' , array(
|
||||
'fd' => array(
|
||||
'account_id' => array('type' => 'int','precision' => 4,'nullable' => false),
|
||||
@ -298,7 +298,7 @@
|
||||
)
|
||||
);
|
||||
|
||||
$GLOBALS['phpgw_setup']->oProc->CreateTable(
|
||||
$GLOBALS['egw_setup']->oProc->CreateTable(
|
||||
'phpgw_vfs2_versioning' , array(
|
||||
'fd' => array(
|
||||
'version_id' => array('type' => 'auto', 'nullable' => false),
|
||||
@ -320,7 +320,7 @@
|
||||
)
|
||||
);
|
||||
|
||||
$GLOBALS['phpgw_setup']->oProc->CreateTable(
|
||||
$GLOBALS['egw_setup']->oProc->CreateTable(
|
||||
'phpgw_vfs2_customfields_data' , array(
|
||||
'fd' => array(
|
||||
'file_id' => array('type' => 'int','precision' => 4,'nullable' => false),
|
||||
@ -334,7 +334,7 @@
|
||||
)
|
||||
);
|
||||
|
||||
$GLOBALS['phpgw_setup']->oProc->CreateTable(
|
||||
$GLOBALS['egw_setup']->oProc->CreateTable(
|
||||
'phpgw_vfs2_prefixes' , array(
|
||||
'fd' => array(
|
||||
'prefix_id' => array('type' => 'auto','nullable' => false),
|
||||
@ -360,7 +360,7 @@
|
||||
|
||||
include PHPGW_INCLUDE_ROOT.'/phpgwapi/setup/default_records_mime.inc.php';
|
||||
|
||||
$GLOBALS['phpgw_setup']->oProc->query("INSERT INTO phpgw_vfs2_files (mime_id,owner_id,createdby_id,size,directory,name)
|
||||
$GLOBALS['egw_setup']->oProc->query("INSERT INTO phpgw_vfs2_files (mime_id,owner_id,createdby_id,size,directory,name)
|
||||
SELECT mime_id,0,0,4096,'/','' FROM phpgw_vfs2_mimetypes WHERE mime='Directory'");
|
||||
|
||||
if ($GLOBALS['DEBUG'])
|
||||
@ -377,7 +377,7 @@
|
||||
$test[] = '1.0.1.006';
|
||||
function phpgwapi_upgrade1_0_1_006()
|
||||
{
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameTable('phpgw_async','egw_async');
|
||||
$GLOBALS['egw_setup']->oProc->RenameTable('phpgw_async','egw_async');
|
||||
|
||||
$GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.0.1.007';
|
||||
return $GLOBALS['setup_info']['phpgwapi']['currentver'];
|
||||
@ -387,23 +387,23 @@
|
||||
function phpgwapi_upgrade1_0_1_007()
|
||||
{
|
||||
//Creating cached values for modified and modifiedby_id
|
||||
$GLOBALS['phpgw_setup']->oProc->AddColumn('phpgw_vfs2_files', 'modifiedby_id', array('type' => 'int','precision' => 4));
|
||||
$GLOBALS['phpgw_setup']->oProc->AddColumn('phpgw_vfs2_files', 'modified', array('type' => 'timestamp', 'nullable' => true));
|
||||
$GLOBALS['egw_setup']->oProc->AddColumn('phpgw_vfs2_files', 'modifiedby_id', array('type' => 'int','precision' => 4));
|
||||
$GLOBALS['egw_setup']->oProc->AddColumn('phpgw_vfs2_files', 'modified', array('type' => 'timestamp', 'nullable' => true));
|
||||
|
||||
//Updating existing values
|
||||
$sql = "SELECT max(modified) as mod, file_id, modifiedby_id from phpgw_vfs2_versioning group by file_id";
|
||||
|
||||
$GLOBALS['phpgw_setup']->oProc->m_odb->query($sql,__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->oProc->m_odb->query($sql,__LINE__,__FILE__);
|
||||
|
||||
$files_to_change = array();
|
||||
while ($GLOBALS['phpgw_setup']->oProc->m_odb->next_record())
|
||||
while ($GLOBALS['egw_setup']->oProc->m_odb->next_record())
|
||||
{
|
||||
$files_to_change[] = $GLOBALS['phpgw_setup']->oProc->m_odb->Record;
|
||||
$files_to_change[] = $GLOBALS['egw_setup']->oProc->m_odb->Record;
|
||||
}
|
||||
|
||||
foreach ($files_to_change as $key => $val)
|
||||
{
|
||||
$GLOBALS['phpgw_setup']->oProc->m_odb->update('phpgw_vfs2_files',
|
||||
$GLOBALS['egw_setup']->oProc->m_odb->update('phpgw_vfs2_files',
|
||||
array(
|
||||
'modified' => $val['mod'],
|
||||
'modifiedby_id' => $val['modifiedby_id']
|
||||
@ -419,7 +419,7 @@
|
||||
$test[] = '1.0.1.008';
|
||||
function phpgwapi_upgrade1_0_1_008()
|
||||
{
|
||||
$GLOBALS['phpgw_setup']->oProc->CreateTable(
|
||||
$GLOBALS['egw_setup']->oProc->CreateTable(
|
||||
'egw_contentmap', array(
|
||||
'fd' => array(
|
||||
'map_id' => array('type' => 'varchar', 'precision' => '255', 'nullable' => False),
|
||||
@ -435,7 +435,7 @@
|
||||
)
|
||||
);
|
||||
|
||||
$GLOBALS['phpgw_setup']->oProc->CreateTable(
|
||||
$GLOBALS['egw_setup']->oProc->CreateTable(
|
||||
'egw_syncmldevinfo', array(
|
||||
'fd' => array(
|
||||
'dev_id' => array('type' => 'varchar', 'precision' => '255', 'nullable' => False),
|
||||
@ -457,7 +457,7 @@
|
||||
)
|
||||
);
|
||||
|
||||
$GLOBALS['phpgw_setup']->oProc->CreateTable(
|
||||
$GLOBALS['egw_setup']->oProc->CreateTable(
|
||||
'egw_syncmlsummary', array(
|
||||
'fd' => array(
|
||||
'dev_id' => array('type' => 'varchar', 'precision' => '255', 'nullable' => False),
|
||||
@ -485,7 +485,7 @@
|
||||
include(EGW_SERVER_ROOT . '/home/setup/setup.inc.php');
|
||||
$home_version = $setup_info['home']['version'];
|
||||
|
||||
$GLOBALS['phpgw_setup']->db->insert('phpgw_applications',array(
|
||||
$GLOBALS['egw_setup']->db->insert($GLOBALS['egw_setup']->applications_table,array(
|
||||
'app_enabled' => $setup_info['home']['enable'],
|
||||
'app_order' => $setup_info['home']['app_order'],
|
||||
'app_version' => $setup_info['home']['version'],
|
||||
@ -495,19 +495,19 @@
|
||||
),__LINE__,__FILE__);
|
||||
|
||||
// give all users and groups with preferences rights, rights for the home app.
|
||||
$GLOBALS['phpgw_setup']->db->select('phpgw_acl','acl_account',array(
|
||||
$GLOBALS['egw_setup']->db->select('phpgw_acl','acl_account',array(
|
||||
'acl_appname' => 'preferences',
|
||||
'acl_location' => 'run',
|
||||
'acl_rights' => 1,
|
||||
),__LINE__,__FILE__);
|
||||
$accounts_with_preference_rights = array();
|
||||
while (($row = $GLOBALS['phpgw_setup']->db->row(true)))
|
||||
while (($row = $GLOBALS['egw_setup']->db->row(true)))
|
||||
{
|
||||
$accounts_with_preference_rights[] = $row['acl_account'];
|
||||
}
|
||||
foreach($accounts_with_preference_rights as $account)
|
||||
{
|
||||
$GLOBALS['phpgw_setup']->db->insert('phpgw_acl',array(
|
||||
$GLOBALS['egw_setup']->db->insert('phpgw_acl',array(
|
||||
'acl_rights' => 1,
|
||||
),array(
|
||||
'acl_appname' => 'home',
|
||||
@ -524,18 +524,18 @@
|
||||
$test[] = '1.0.1.010';
|
||||
function phpgwapi_upgrade1_0_1_010()
|
||||
{
|
||||
$GLOBALS['phpgw_setup']->oProc->AlterColumn('phpgw_sessions','session_ip',array(
|
||||
$GLOBALS['egw_setup']->oProc->AlterColumn('phpgw_sessions','session_ip',array(
|
||||
'type' => 'varchar',
|
||||
'precision' => '40'
|
||||
));
|
||||
|
||||
$GLOBALS['phpgw_setup']->oProc->AlterColumn('phpgw_access_log','ip',array(
|
||||
$GLOBALS['egw_setup']->oProc->AlterColumn('phpgw_access_log','ip',array(
|
||||
'type' => 'varchar',
|
||||
'precision' => '40',
|
||||
'nullable' => False
|
||||
));
|
||||
|
||||
$GLOBALS['phpgw_setup']->oProc->AlterColumn('phpgw_access_log','loginid',array(
|
||||
$GLOBALS['egw_setup']->oProc->AlterColumn('phpgw_access_log','loginid',array(
|
||||
'type' => 'varchar',
|
||||
'precision' => '128'
|
||||
));
|
||||
@ -548,15 +548,15 @@
|
||||
function phpgwapi_upgrade1_0_1_011()
|
||||
{
|
||||
// moving the egw_links table into the API
|
||||
if ($GLOBALS['phpgw_setup']->oProc->GetTableDefinition('phpgw_links'))
|
||||
if ($GLOBALS['egw_setup']->oProc->GetTableDefinition('phpgw_links'))
|
||||
{
|
||||
// table exists with old name ==> rename it to new one
|
||||
$GLOBALS['phpgw_setup']->oProc->RenameTable('phpgw_links','egw_links');
|
||||
$GLOBALS['egw_setup']->oProc->RenameTable('phpgw_links','egw_links');
|
||||
}
|
||||
elseif (!$GLOBALS['phpgw_setup']->oProc->GetTableDefinition('egw_links'))
|
||||
elseif (!$GLOBALS['egw_setup']->oProc->GetTableDefinition('egw_links'))
|
||||
{
|
||||
// table does not exist at all (infolog not installed) ==> create it
|
||||
$GLOBALS['phpgw_setup']->oProc->CreateTable('egw_links',array(
|
||||
$GLOBALS['egw_setup']->oProc->CreateTable('egw_links',array(
|
||||
'fd' => array(
|
||||
'link_id' => array('type' => 'auto','nullable' => False),
|
||||
'link_app1' => array('type' => 'varchar','precision' => '25','nullable' => False),
|
||||
@ -574,9 +574,34 @@
|
||||
));
|
||||
}
|
||||
// move the link-configuration to the api
|
||||
$GLOBALS['phpgw_setup']->oProc->query('UPDATE '.$GLOBALS['phpgw_setup']->config_table." SET config_app='phpgwapi' WHERE config_app='infolog' AND config_name IN ('link_pathes','send_file_ips')",__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->oProc->query('UPDATE '.$GLOBALS['egw_setup']->config_table." SET config_app='phpgwapi' WHERE config_app='infolog' AND config_name IN ('link_pathes','send_file_ips')",__LINE__,__FILE__);
|
||||
|
||||
$GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.0.1.012';
|
||||
return $GLOBALS['setup_info']['phpgwapi']['currentver'];
|
||||
}
|
||||
?>
|
||||
|
||||
$test[] = '1.0.1.012';
|
||||
function phpgwapi_upgrade1_0_1_012()
|
||||
{
|
||||
$GLOBALS['egw_setup']->oProc->RenameTable('phpgw_accounts','egw_accounts');
|
||||
$GLOBALS['egw_setup']->accounts_table = 'egw_accounts';
|
||||
$GLOBALS['egw_setup']->oProc->RenameTable('phpgw_acl','egw_acl');
|
||||
$GLOBALS['egw_setup']->acl_table = 'egw_acl';
|
||||
$GLOBALS['egw_setup']->oProc->RenameTable('phpgw_log','egw_log');
|
||||
$GLOBALS['egw_setup']->oProc->RenameTable('phpgw_log_msg','egw_log_msg');
|
||||
|
||||
$GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.0.1.013';
|
||||
return $GLOBALS['setup_info']['phpgwapi']['currentver'];
|
||||
}
|
||||
|
||||
$test[] = '1.0.1.013';
|
||||
function phpgwapi_upgrade1_0_1_013()
|
||||
{
|
||||
$GLOBALS['egw_setup']->oProc->RenameTable('phpgw_config','egw_config');
|
||||
$GLOBALS['egw_setup']->config_table = 'egw_config';
|
||||
$GLOBALS['egw_setup']->oProc->RenameTable('phpgw_applications','egw_applications');
|
||||
$GLOBALS['egw_setup']->applications_table = 'egw_applications';
|
||||
|
||||
$GLOBALS['setup_info']['phpgwapi']['currentver'] = '1.0.1.014';
|
||||
return $GLOBALS['setup_info']['phpgwapi']['currentver'];
|
||||
}
|
||||
|
@ -16,7 +16,7 @@
|
||||
{
|
||||
$file['Change your Password'] = $GLOBALS['egw']->link('/index.php','menuaction=preferences.uipassword.change');
|
||||
}
|
||||
$file['change your settings'] = $GLOBALS['egw']->link('/index.php','menuaction=preferences.uisettings.index&appname=preferences');
|
||||
$file['common preferences'] = $GLOBALS['egw']->link('/index.php','menuaction=preferences.uisettings.index&appname=preferences');
|
||||
|
||||
display_section('preferences',$file);
|
||||
?>
|
||||
|
@ -14,64 +14,18 @@
|
||||
|
||||
class so_acl
|
||||
{
|
||||
var $db;
|
||||
|
||||
function so_acl()
|
||||
{
|
||||
$this->db = clone($GLOBALS['egw']->db);
|
||||
$this->db->set_app('resources');
|
||||
}
|
||||
|
||||
function get_rights($location)
|
||||
{
|
||||
$result = array();
|
||||
$sql = "SELECT acl_account, acl_rights from phpgw_acl WHERE acl_appname = 'resources' AND acl_location = '$location'";
|
||||
$this->db->query($sql,__LINE__,__FILE__);
|
||||
while($this->db->next_record())
|
||||
{
|
||||
$result[$this->db->f('acl_account')] = $this->db->f('acl_rights');
|
||||
}
|
||||
return $result;
|
||||
return $GLOBALS['egw']->acl->get_all_rights($location,'news_admin');
|
||||
}
|
||||
|
||||
function remove_location($location)
|
||||
{
|
||||
$sql = "delete from phpgw_acl where acl_appname='resources' and acl_location='$location'";
|
||||
$this->db->query($sql,__LINE__,__FILE__);
|
||||
$GLOBALS['egw']->acl->delete_repository('news_admin',$location,false);
|
||||
}
|
||||
|
||||
/**
|
||||
* gets permissions for resources of user
|
||||
*
|
||||
* This function is needed, cause eGW api dosn't provide a usefull function for that topic!
|
||||
* Using api-functions for that, would resault bad performace :-(
|
||||
* autor of news_admin ?
|
||||
*
|
||||
* @param int $user user_id we want to get perms for
|
||||
* @param bool $inc_groups get rights due to groupmembership of user
|
||||
*
|
||||
*/
|
||||
function get_permissions($user, $inc_groups)
|
||||
{
|
||||
$groups = $GLOBALS['egw']->acl->get_location_list_for_id('phpgw_group', 1, $user);
|
||||
$result = array();
|
||||
$sql = 'SELECT acl_location, acl_rights FROM phpgw_acl ';
|
||||
$sql .= "WHERE acl_appname = 'resources' ";
|
||||
if($inc_groups)
|
||||
{
|
||||
$sql .= 'AND acl_account IN('. (int)$user;
|
||||
$sql .= ($groups ? ',' . implode(',', $groups) : '');
|
||||
$sql .= ')';
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql .= 'AND acl_account ='. (int)$user;
|
||||
}
|
||||
$this->db->query($sql,__LINE__,__FILE__);
|
||||
while ($this->db->next_record())
|
||||
{
|
||||
$result[$this->db->f('acl_location')] |= $this->db->f('acl_rights');
|
||||
}
|
||||
return $result;
|
||||
return $GLOBALS['egw']->acl->get_all_location_rights($user,'sitemgr',$inc_groups);
|
||||
}
|
||||
}
|
||||
|
@ -160,7 +160,7 @@
|
||||
|
||||
// delete all application categories and ACL
|
||||
$GLOBALS['egw_setup']->db->query("DELETE FROM phpgw_categories WHERE cat_appname='$appname'",__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->db->query("DELETE FROM phpgw_acl WHERE acl_appname='$appname'",__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->db->query("DELETE FROM {$GLOBALS['egw_setup']->acl_table} WHERE acl_appname='$appname'",__LINE__,__FILE__);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -49,15 +49,6 @@
|
||||
/* Check api version, use correct table */
|
||||
$setup_info = $GLOBALS['egw_setup']->detection->get_db_versions();
|
||||
|
||||
if($GLOBALS['egw_setup']->alessthanb($setup_info['phpgwapi']['currentver'], '0.9.10pre7'))
|
||||
{
|
||||
$configtbl = 'config';
|
||||
}
|
||||
else
|
||||
{
|
||||
$configtbl = 'phpgw_config';
|
||||
}
|
||||
|
||||
$newsettings = $_POST['newsettings'];
|
||||
|
||||
if(@get_var('submit',Array('POST')) && @$newsettings)
|
||||
@ -83,11 +74,7 @@
|
||||
print_debug('TZ_OFFSET',$newsettings['tz_offset']);
|
||||
|
||||
$GLOBALS['egw_setup']->db->transaction_begin();
|
||||
/* This is only temp: */
|
||||
$GLOBALS['egw_setup']->db->query("DELETE FROM $configtbl WHERE config_name='useframes'");
|
||||
$GLOBALS['egw_setup']->db->query("INSERT INTO $configtbl (config_app,config_name, config_value) values ('phpgwapi','useframes','never')");
|
||||
|
||||
while(list($setting,$value) = @each($newsettings))
|
||||
foreach($newsettings as $setting => $value)
|
||||
{
|
||||
if($GLOBALS['egw_info']['server']['found_validation_hook'] && @function_exists($setting))
|
||||
{
|
||||
@ -99,55 +86,32 @@
|
||||
/* Bail out, stop writing config data */
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* echo '<br />Updating: ' . $setting . '=' . $value; */
|
||||
/* Don't erase passwords, since we also do not print them below */
|
||||
if($value || (!stristr($setting,'passwd') && !stristr($setting,'password') && !stristr($setting,'root_pw')))
|
||||
{
|
||||
@$GLOBALS['egw_setup']->db->query("DELETE FROM $configtbl WHERE config_name='" . $setting . "'");
|
||||
}
|
||||
if($value)
|
||||
{
|
||||
$GLOBALS['egw_setup']->db->query("INSERT INTO $configtbl (config_app,config_name, config_value) VALUES ('phpgwapi','" . $GLOBALS['egw_setup']->db->db_addslashes($setting)
|
||||
. "','" . $GLOBALS['egw_setup']->db->db_addslashes($value) . "')");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
/* Don't erase passwords, since we also do not print them below */
|
||||
if(empty($value) && !(stristr($setting,'passwd') || stristr($setting,'password') || stristr($setting,'root_pw')))
|
||||
{
|
||||
if($value || (!stristr($setting,'passwd') && !stristr($setting,'password') && !stristr($setting,'root_pw')))
|
||||
{
|
||||
@$GLOBALS['egw_setup']->db->query("DELETE FROM $configtbl WHERE config_name='" . $setting . "'");
|
||||
}
|
||||
if($value)
|
||||
{
|
||||
$GLOBALS['egw_setup']->db->query("INSERT INTO $configtbl (config_app,config_name, config_value) VALUES ('phpgwapi','" . $GLOBALS['egw_setup']->db->db_addslashes($setting)
|
||||
. "','" . $GLOBALS['egw_setup']->db->db_addslashes($value) . "')");
|
||||
}
|
||||
$GLOBALS['egw_setup']->db->delete($GLOBALS['egw_setup']->config_table,array(
|
||||
'config_name' => $setting,
|
||||
'config_app' => 'phpgwapi',
|
||||
),__LINE__,__FILE__);
|
||||
}
|
||||
elseif($value)
|
||||
{
|
||||
$GLOBALS['egw_setup']->db->insert($GLOBALS['egw_setup']->config_table,array(
|
||||
'config_value' => $value,
|
||||
),array(
|
||||
'config_name' => $setting,
|
||||
'config_app' => 'phpgwapi',
|
||||
),__LINE__,__FILE__);
|
||||
}
|
||||
}
|
||||
if(!$GLOBALS['error'])
|
||||
{
|
||||
$GLOBALS['egw_setup']->db->transaction_commit();
|
||||
|
||||
/* Add cleaning of app_sessions per skeeter, but with a check for the table being there, just in case */
|
||||
$tablenames = $GLOBALS['egw_setup']->db->table_names();
|
||||
while(list($key,$val) = @each($tablenames))
|
||||
{
|
||||
$tables[] = $val['table_name'];
|
||||
}
|
||||
if(in_array('phpgw_app_sessions',$tables))
|
||||
{
|
||||
$GLOBALS['egw_setup']->db->lock(array('phpgw_app_sessions'));
|
||||
@$GLOBALS['egw_setup']->db->query("DELETE FROM phpgw_app_sessions WHERE sessionid = '0' and loginid = '0' and app = 'phpgwapi' and location = 'config'",__LINE__,__FILE__);
|
||||
@$GLOBALS['egw_setup']->db->query("DELETE FROM phpgw_app_sessions WHERE app = 'phpgwapi' and location = 'phpgw_info_cache'",__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->db->unlock();
|
||||
}
|
||||
|
||||
if($newsettings['auth_type'] == 'ldap')
|
||||
{
|
||||
Header('Location: '.$newsettings['webserver_url'].'/setup/ldap.php');
|
||||
Header('Location: ldap.php');
|
||||
exit;
|
||||
}
|
||||
else
|
||||
@ -160,8 +124,8 @@
|
||||
|
||||
$GLOBALS['egw_setup']->html->show_header(lang('Configuration'),False,'config',$GLOBALS['egw_setup']->ConfigDomain . '(' . $GLOBALS['egw_domain'][$GLOBALS['egw_setup']->ConfigDomain]['db_type'] . ')');
|
||||
|
||||
@$GLOBALS['egw_setup']->db->query("SELECT * FROM $configtbl");
|
||||
while(@$GLOBALS['egw_setup']->db->next_record())
|
||||
$GLOBALS['egw_setup']->db->select($GLOBALS['egw_setup']->config_table,'*',false,__LINES__,__FILES__);
|
||||
while($GLOBALS['egw_setup']->db->next_record())
|
||||
{
|
||||
$GLOBALS['current_config'][$GLOBALS['egw_setup']->db->f('config_name')] = $GLOBALS['egw_setup']->db->f('config_value');
|
||||
}
|
||||
@ -177,8 +141,8 @@
|
||||
var $db;
|
||||
}
|
||||
$GLOBALS['egw'] = new phpgw;
|
||||
$GLOBALS['egw']->common = CreateObject('phpgwapi.common');
|
||||
$GLOBALS['egw']->db = $GLOBALS['egw_setup']->db;
|
||||
$GLOBALS['egw']->common =& CreateObject('phpgwapi.common');
|
||||
$GLOBALS['egw']->db =& $GLOBALS['egw_setup']->db;
|
||||
|
||||
$t = CreateObject('setup.Template',$GLOBALS['egw']->common->get_tpl_dir('setup'));
|
||||
|
||||
|
@ -27,8 +27,15 @@
|
||||
class setup
|
||||
{
|
||||
var $db;
|
||||
var $config_table = 'phpgw_config';
|
||||
var $applications_table = 'phpgw_applications';
|
||||
var $config_table = 'egw_config';
|
||||
var $applications_table = 'egw_applications';
|
||||
var $acl_table = 'egw_acl';
|
||||
var $accounts_table = 'egw_accounts';
|
||||
var $prefs_table = 'phpgw_preferences';
|
||||
var $lang_table = 'phpgw_lang';
|
||||
var $languages_table = 'phpgw_languages';
|
||||
var $hooks_table = 'phpgw_hooks';
|
||||
var $cats_table = 'phpgw_categories';
|
||||
var $oProc;
|
||||
|
||||
var $detection = '';
|
||||
@ -49,10 +56,6 @@
|
||||
/* The setup application needs these */
|
||||
$this->html = $html ? CreateObject('setup.setup_html') : '';
|
||||
$this->translation = $translation ? CreateObject('setup.setup_translation') : '';
|
||||
|
||||
// $this->tbl_apps = $this->get_apps_table_name();
|
||||
// $this->tbl_config = $this->get_config_table_name();
|
||||
$this->tbl_hooks = $this->get_hooks_table_name();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -85,8 +88,13 @@
|
||||
{
|
||||
$this->db->Halt_On_Error = 'no'; // table might not be created at that stage
|
||||
|
||||
$this->set_table_names(); // sets/checks config- and applications-table-name
|
||||
|
||||
// Set the DB's client charset if a system-charset is set
|
||||
$this->db->query("select config_value from phpgw_config WHERE config_app='phpgwapi' and config_name='system_charset'",__LINE__,__FILE__);
|
||||
$this->db->select($this->config_table,'config_value',array(
|
||||
'config_app' => 'phpgwapi',
|
||||
'config_name' => 'system_charset',
|
||||
),__LINE__,__FILE__);
|
||||
if ($this->db->next_record() && $this->db->f(0))
|
||||
{
|
||||
$this->db->Link_ID->SetCharSet($this->db->f(0));
|
||||
@ -426,15 +434,6 @@
|
||||
}
|
||||
$enable = (int)$enable;
|
||||
|
||||
/*
|
||||
Use old applications table if the currentver is less than 0.9.10pre8,
|
||||
but not if the currentver = '', which probably means new install.
|
||||
*/
|
||||
if($this->alessthanb($setup_info['phpgwapi']['currentver'],'0.9.10pre8') && ($setup_info['phpgwapi']['currentver'] != ''))
|
||||
{
|
||||
$this->applications_table = 'applications';
|
||||
}
|
||||
|
||||
if($GLOBALS['DEBUG'])
|
||||
{
|
||||
echo '<br>register_app(): ' . $appname . ', version: ' . $setup_info[$appname]['version'] . ', table: ' . $appstbl . '<br>';
|
||||
@ -861,17 +860,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
function get_hooks_table_name()
|
||||
{
|
||||
if(@$this->alessthanb($GLOBALS['setup_info']['phpgwapi']['currentver'],'0.9.8pre5') &&
|
||||
@$GLOBALS['setup_info']['phpgwapi']['currentver'] != '')
|
||||
{
|
||||
/* No phpgw_hooks table yet. */
|
||||
return False;
|
||||
}
|
||||
return 'phpgw_hooks';
|
||||
}
|
||||
|
||||
function setup_account_object()
|
||||
{
|
||||
if (!is_object($GLOBALS['egw']->accounts))
|
||||
@ -881,7 +869,7 @@
|
||||
$this->loaddb();
|
||||
}
|
||||
/* Load up some configured values */
|
||||
$this->db->query("SELECT config_name,config_value FROM phpgw_config "
|
||||
$this->db->query("SELECT config_name,config_value FROM $this->config_table "
|
||||
. "WHERE config_name LIKE 'ldap%' OR config_name LIKE 'account_%' OR config_name LIKE '%encryption%'",__LINE__,__FILE__);
|
||||
while($this->db->next_record())
|
||||
{
|
||||
@ -1005,12 +993,54 @@
|
||||
}
|
||||
foreach($apps as $app)
|
||||
{
|
||||
$this->db->query("DELETE FROM phpgw_acl WHERE acl_appname='$app' AND acl_location='$location' AND acl_account=$account");
|
||||
$this->db->query("DELETE FROM $this->acl_table WHERE acl_appname='$app' AND acl_location='$location' AND acl_account=$account");
|
||||
if ($rights)
|
||||
{
|
||||
$this->db->query("INSERT INTO phpgw_acl(acl_appname,acl_location,acl_account,acl_rights) VALUES('$app','$location',$account,$rights)");
|
||||
$this->db->query("INSERT INTO $this->acl_table (acl_appname,acl_location,acl_account,acl_rights) VALUES('$app','$location',$account,$rights)");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* checks if one of the given tables exist, returns the first match
|
||||
*
|
||||
* @param array $tables array with possible table-names
|
||||
* @return string/boolean tablename or false
|
||||
*/
|
||||
function table_exist($tables)
|
||||
{
|
||||
static $table_names;
|
||||
|
||||
if (!$table_names) $table_names = $this->db->table_names();
|
||||
|
||||
if (!$table_names) return false;
|
||||
|
||||
foreach($table_names as $data)
|
||||
{
|
||||
if (($key = array_search($data['table_name'],$tables)) !== false)
|
||||
{
|
||||
return $tables[$key];
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks and set the names of the tables, which get accessed before an update: eg. config- and applications-table
|
||||
*
|
||||
* Other tables can always use the most up to date name
|
||||
*/
|
||||
function set_table_names()
|
||||
{
|
||||
foreach(array(
|
||||
'config_table' => array('egw_config','phpgw_config','config'),
|
||||
'applications_table' => array('egw_applications','phpgw_applications','applications'),
|
||||
'lang_table' => array('egw_lang','phpgw_lang','lang'),
|
||||
'languages_table' => array('egw_languages','phpgw_languages','languages'),
|
||||
) as $name => $tables)
|
||||
{
|
||||
$this->$name = $this->table_exist($tables);
|
||||
//echo "<p>setup::set_table_names: $name = '{$this->$name}'</p>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -42,20 +42,15 @@
|
||||
{
|
||||
$tname = Array();
|
||||
$GLOBALS['egw_setup']->db->Halt_On_Error = 'no';
|
||||
$tables = $GLOBALS['egw_setup']->db->table_names();
|
||||
foreach($tables as $key => $val)
|
||||
{
|
||||
$tname[] = $val['table_name'];
|
||||
}
|
||||
$newapps = in_array('phpgw_applications',$tname);
|
||||
$oldapps = in_array('applications',$tname);
|
||||
|
||||
$GLOBALS['egw_setup']->set_table_names();
|
||||
|
||||
if((count($tables) > 0) && (is_array($tables)) && ($newapps || $oldapps))
|
||||
if($GLOBALS['egw_setup']->applications_table)
|
||||
{
|
||||
/* one of these tables exists. checking for post/pre beta version */
|
||||
if($newapps)
|
||||
if($GLOBALS['egw_setup']->applications_table != 'applications')
|
||||
{
|
||||
$GLOBALS['egw_setup']->db->query('SELECT * FROM phpgw_applications',__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->db->select($GLOBALS['egw_setup']->applications_table,'*',false,__LINE__,__FILE__);
|
||||
while(@$GLOBALS['egw_setup']->db->next_record())
|
||||
{
|
||||
$setup_info[$GLOBALS['egw_setup']->db->f('app_name')]['currentver'] = $GLOBALS['egw_setup']->db->f('app_version');
|
||||
@ -80,7 +75,7 @@
|
||||
}
|
||||
$setup_info['phpgwapi']['version'] = $tmp; /* restore the file version */
|
||||
}
|
||||
elseif($oldapps)
|
||||
else
|
||||
{
|
||||
$GLOBALS['egw_setup']->db->query('select * from applications');
|
||||
while(@$GLOBALS['egw_setup']->db->next_record())
|
||||
@ -267,6 +262,8 @@
|
||||
$GLOBALS['egw_setup']->db->connect();
|
||||
error_reporting($old);
|
||||
}
|
||||
$GLOBALS['egw_setup']->set_table_names();
|
||||
|
||||
if (!$GLOBALS['egw_setup']->db->Link_ID)
|
||||
{
|
||||
$GLOBALS['egw_info']['setup']['header_msg'] = 'Stage 1 (Create Database)';
|
||||
@ -276,7 +273,7 @@
|
||||
{
|
||||
$setup_info = $this->get_db_versions($setup_info);
|
||||
}
|
||||
// _debug_array($setup_info);
|
||||
//_debug_array($setup_info);
|
||||
if (isset($setup_info['phpgwapi']['currentver']))
|
||||
{
|
||||
if(@$setup_info['phpgwapi']['currentver'] == @$setup_info['phpgwapi']['version'])
|
||||
@ -293,10 +290,10 @@
|
||||
else
|
||||
{
|
||||
/* no tables, so checking if we can create them */
|
||||
$GLOBALS['egw_setup']->db->query('CREATE TABLE phpgw_testrights ( testfield varchar(5) NOT NULL )');
|
||||
$GLOBALS['egw_setup']->db->query('CREATE TABLE egw_testrights ( testfield varchar(5) NOT NULL )');
|
||||
if(!$GLOBALS['egw_setup']->db->Errno)
|
||||
{
|
||||
$GLOBALS['egw_setup']->db->query('DROP TABLE phpgw_testrights');
|
||||
$GLOBALS['egw_setup']->db->query('DROP TABLE egw_testrights');
|
||||
$GLOBALS['egw_info']['setup']['header_msg'] = 'Stage 3 (Install Applications)';
|
||||
return 3;
|
||||
}
|
||||
@ -316,19 +313,7 @@
|
||||
return '';
|
||||
}
|
||||
|
||||
/* Since 0.9.10pre6 config table is named as phpgw_config */
|
||||
$ver = explode('.',@$GLOBALS['egw_info']['server']['versions']['phpgwapi']);
|
||||
$config_table = $ver[0] > 0 || (int)$ver[2] > 10 ? 'phpgw_config' : 'config';
|
||||
|
||||
if(ereg("([0-9]+)(pre)([0-9]+)",$ver[2],$regs))
|
||||
{
|
||||
if(($regs[1] == '10') && ($regs[3] >= '6'))
|
||||
{
|
||||
$config_table = 'phpgw_config';
|
||||
}
|
||||
}
|
||||
|
||||
@$GLOBALS['egw_setup']->db->query("select config_value from $config_table where config_name='freshinstall'");
|
||||
$GLOBALS['egw_setup']->db->select($GLOBALS['egw_setup']->config_table,'config_value',array('config_name'=>'freshinstall'),__LINE__,__FILE__);
|
||||
$configured = $GLOBALS['egw_setup']->db->next_record() ? $GLOBALS['egw_setup']->db->f('config_value') : False;
|
||||
if($configed)
|
||||
{
|
||||
@ -353,18 +338,7 @@
|
||||
{
|
||||
$GLOBALS['setup_info'] = $GLOBALS['egw_setup']->detection->get_db_versions($GLOBALS['setup_info']);
|
||||
}
|
||||
if($GLOBALS['egw_setup']->alessthanb($GLOBALS['setup_info']['phpgwapi']['currentver'], '0.9.14.501') ||
|
||||
ereg('0\.9\.15\.00[01]{1,1}',$GLOBALS['setup_info']['phpgwapi']['currentver']))
|
||||
{
|
||||
$langtbl = 'lang';
|
||||
$languagestbl = 'languages';
|
||||
}
|
||||
else
|
||||
{
|
||||
$langtbl = 'phpgw_lang';
|
||||
$languagestbl = 'phpgw_languages';
|
||||
}
|
||||
$GLOBALS['egw_setup']->db->query($q = "SELECT DISTINCT lang FROM $langtbl",__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->db->query($q = "SELECT DISTINCT lang FROM {$GLOBALS['egw_setup']->lang_table}",__LINE__,__FILE__);
|
||||
if($GLOBALS['egw_setup']->db->num_rows() == 0)
|
||||
{
|
||||
$GLOBALS['egw_info']['setup']['header_msg'] = 'Stage 3 (No languages installed)';
|
||||
@ -378,7 +352,7 @@
|
||||
}
|
||||
foreach($GLOBALS['egw_info']['setup']['installed_langs'] as $key => $value)
|
||||
{
|
||||
$sql = "SELECT lang_name FROM $languagestbl WHERE lang_id = '".$value."'";
|
||||
$sql = "SELECT lang_name FROM {$GLOBALS['egw_setup']->languages_table} WHERE lang_id = '".$value."'";
|
||||
$GLOBALS['egw_setup']->db->query($sql);
|
||||
if ($GLOBALS['egw_setup']->db->next_record())
|
||||
{
|
||||
|
@ -231,12 +231,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
foreach($GLOBALS['current_config'] as $setting => $value)
|
||||
foreach($GLOBALS['current_config'] as $name => $value)
|
||||
{
|
||||
$setting = $GLOBALS['egw_setup']->db->db_addslashes($setting);
|
||||
$value = $GLOBALS['egw_setup']->db->db_addslashes($value);
|
||||
@$GLOBALS['egw_setup']->db->query("DELETE FROM phpgw_config WHERE config_app='phpgwapi' AND config_name='$setting'",__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->db->query("INSERT INTO phpgw_config (config_app,config_name, config_value) VALUES ('phpgwapi','$setting','$value')");
|
||||
$GLOBALS['egw_setup']->db->insert($GLOBALS['egw_setup']->config_table,array(
|
||||
'config_value' => $value,
|
||||
),array(
|
||||
'config_app' => 'phpgwapi',
|
||||
'config_name' => $name,
|
||||
),__FILE__,__LINE__);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -440,7 +440,7 @@ function check_dir($dir,&$msg,$check_in_docroot=false)
|
||||
$setup_tpl->set_var('ldap_table_data',' ');
|
||||
break;
|
||||
case 10:
|
||||
$GLOBALS['egw_setup']->db->query("SELECT config_name,config_value FROM phpgw_config WHERE config_app='phpgwapi'");
|
||||
$GLOBALS['egw_setup']->db->select($GLOBALS['egw_setup']->config_table,'config_name,config_value',array('config_app' => 'phpgwapi'),__LINE__,__FILE__);
|
||||
while($GLOBALS['egw_setup']->db->next_record())
|
||||
{
|
||||
$config[$GLOBALS['egw_setup']->db->f(0)] = $GLOBALS['egw_setup']->db->f(1);
|
||||
@ -451,7 +451,12 @@ function check_dir($dir,&$msg,$check_in_docroot=false)
|
||||
$config['backup_dir'] = $config['files_dir'].'/db_backup';
|
||||
if (!is_dir($config['backup_dir']) && mkdir($config['backup_dir']))
|
||||
{
|
||||
$GLOBALS['egw_setup']->db->query("INSERT INTO phpgw_config (config_app,config_name,config_value) VALUES ('phpgwapi','backup_dir',".$GLOBALS['egw_setup']->db->quote($config['backup_dir']).')',__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->db->insert($GLOBALS['egw_setup']->config_table,array(
|
||||
'config_value' => $config['backup_dir'],
|
||||
),array(
|
||||
'config_app' => 'phpgwapi',
|
||||
'config_name' => 'backup_dir',
|
||||
),__LINE__,__FILE__);
|
||||
}
|
||||
}
|
||||
$config_msg = '';
|
||||
|
@ -51,12 +51,14 @@
|
||||
'T_alert_msg' => 'msg_alert_msg.tpl'
|
||||
));
|
||||
|
||||
$GLOBALS['egw_setup']->db->query("SELECT config_name,config_value FROM phpgw_config WHERE config_name LIKE 'ldap%'",__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->db->select($GLOBALS['egw_setup']->config_table,'config_name,config_value',array(
|
||||
"config_name LIKE 'ldap%'",
|
||||
),__LINE__,__FILE__);
|
||||
while ($GLOBALS['egw_setup']->db->next_record())
|
||||
{
|
||||
$config[$GLOBALS['egw_setup']->db->f('config_name')] = $GLOBALS['egw_setup']->db->f('config_value');
|
||||
}
|
||||
$phpgw_info['server']['ldap_host'] = $config['ldap_host'];
|
||||
$phpgw_info['server']['ldap_host'] = $config['ldap_host'];
|
||||
$phpgw_info['server']['ldap_context'] = $config['ldap_context'];
|
||||
$phpgw_info['server']['ldap_group_context'] = $config['ldap_group_context'];
|
||||
$phpgw_info['server']['ldap_root_dn'] = $config['ldap_root_dn'];
|
||||
@ -69,7 +71,7 @@
|
||||
$phpgw_info['server']['account_repository'] = 'ldap';
|
||||
|
||||
$egw->accounts = CreateObject('phpgwapi.accounts');
|
||||
$acct = $egw->accounts;
|
||||
$acct = $egw->accounts;
|
||||
|
||||
// First, see if we can connect to the LDAP server, if not send `em back to config.php with an
|
||||
// error message.
|
||||
@ -86,7 +88,7 @@
|
||||
exit;
|
||||
}
|
||||
|
||||
$sql = "SELECT * FROM phpgw_accounts WHERE account_type='u'";
|
||||
$sql = "SELECT * FROM ".$GLOBALS['egw_setup']->accounts_table." WHERE account_type='u'";
|
||||
$GLOBALS['egw_setup']->db->query($sql,__LINE__,__FILE__);
|
||||
while($GLOBALS['egw_setup']->db->next_record())
|
||||
{
|
||||
@ -100,7 +102,7 @@
|
||||
$account_info[$i]['account_primary_group'] = $GLOBALS['egw_setup']->db->f('account_primary_group');
|
||||
}
|
||||
|
||||
$sql = "SELECT * FROM phpgw_accounts WHERE account_type='g'";
|
||||
$sql = "SELECT * FROM ".$GLOBALS['egw_setup']->accounts_table." WHERE account_type='g'";
|
||||
$GLOBALS['egw_setup']->db->query($sql,__LINE__,__FILE__);
|
||||
while($GLOBALS['egw_setup']->db->next_record())
|
||||
{
|
||||
|
@ -56,7 +56,9 @@
|
||||
$phpgw->applications = CreateObject('phpgwapi.applications');
|
||||
$applications = $phpgw->applications;
|
||||
|
||||
$GLOBALS['egw_setup']->db->query("SELECT config_name,config_value FROM phpgw_config WHERE config_name LIKE 'ldap%' OR config_name='account_repository'",__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->db->select($GLOBALS['egw_setup']->config_table,'config_name,config_value',array(
|
||||
"config_name LIKE 'ldap%' OR config_name='account_repository'",
|
||||
),__LINE__,__FILE__);
|
||||
while($GLOBALS['egw_setup']->db->next_record())
|
||||
{
|
||||
$config[$GLOBALS['egw_setup']->db->f('config_name')] = $GLOBALS['egw_setup']->db->f('config_value');
|
||||
@ -129,7 +131,7 @@
|
||||
$group_info = array();
|
||||
}
|
||||
|
||||
$GLOBALS['egw_setup']->db->query("SELECT app_name FROM phpgw_applications WHERE app_enabled!='0' AND app_enabled!='3' ORDER BY app_name",__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->db->select($GLOBALS['egw_setup']->applications_table,'app_name','app_enabled != 0 AND app_enabled != 3',__LINE__,__FILE__);
|
||||
while($GLOBALS['egw_setup']->db->next_record())
|
||||
{
|
||||
$apps[$GLOBALS['egw_setup']->db->f('app_name')] = lang($GLOBALS['egw_setup']->db->f('app_name'));
|
||||
|
@ -51,7 +51,9 @@
|
||||
'T_alert_msg' => 'msg_alert_msg.tpl'
|
||||
));
|
||||
|
||||
$GLOBALS['egw_setup']->db->query("SELECT config_name,config_value FROM phpgw_config WHERE config_name LIKE 'ldap%' OR config_name='account_repository'",__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->db->select($GLOBALS['egw_setup']->config_table,'config_name,config_value',array(
|
||||
"config_name LIKE 'ldap%' OR config_name='account_repository'",
|
||||
),__LINE__,__FILE__);
|
||||
while($GLOBALS['egw_setup']->db->next_record())
|
||||
{
|
||||
$config[$GLOBALS['egw_setup']->db->f('config_name')] = $GLOBALS['egw_setup']->db->f('config_value');
|
||||
@ -111,7 +113,7 @@
|
||||
$group_info = array();
|
||||
}
|
||||
|
||||
$GLOBALS['egw_setup']->db->query("SELECT app_name FROM phpgw_applications WHERE app_enabled!='0' AND app_enabled!='3' ORDER BY app_name",__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->db->select($GLOBALS['egw_setup']->applications_table,'app_name','app_enabled != 0 AND app_enabled != 3',__LINE__,__FILE__);
|
||||
while($GLOBALS['egw_setup']->db->next_record())
|
||||
{
|
||||
$apps[$GLOBALS['egw_setup']->db->f('app_name')] = lang($GLOBALS['egw_setup']->db->f('app_name'));
|
||||
|
@ -91,9 +91,10 @@
|
||||
if($_POST['delete_all'])
|
||||
{
|
||||
/* Now, clear out existing tables */
|
||||
$GLOBALS['egw_setup']->db->query('DELETE FROM phpgw_accounts');
|
||||
$GLOBALS['egw_setup']->db->query('DELETE FROM phpgw_preferences');
|
||||
$GLOBALS['egw_setup']->db->query('DELETE FROM phpgw_acl');
|
||||
foreach(array($GLOBALS['egw_setup']->accounts_table,$GLOBALS['egw_setup']->prefs_table,$GLOBALS['egw_setup']->acl_table) as $table)
|
||||
{
|
||||
$GLOBALS['egw_setup']->db->delete($table,'1=1');
|
||||
}
|
||||
}
|
||||
/* Create the demo groups */
|
||||
$defaultgroupid = (int)$GLOBALS['egw_setup']->add_account('Default','Default','Group',False,False);
|
||||
@ -112,7 +113,7 @@
|
||||
|
||||
// give admin access to all apps, to save us some support requests
|
||||
$all_apps = array();
|
||||
$GLOBALS['egw_setup']->db->query('SELECT app_name FROM phpgw_applications WHERE app_enabled<3');
|
||||
$GLOBALS['egw_setup']->db->select($GLOBALS['egw_setup']->applications_table,'app_name','app_enabled < 3',__LINE__,__FILE__);
|
||||
while ($GLOBALS['egw_setup']->db->next_record())
|
||||
{
|
||||
$all_apps[] = $GLOBALS['egw_setup']->db->f('app_name');
|
||||
|
@ -144,8 +144,12 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
@$GLOBALS['egw_setup']->db->query("DELETE FROM phpgw_config WHERE config_app='phpgwapi' AND config_name='system_charset'",__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->db->query("INSERT INTO phpgw_config (config_app,config_name,config_value) VALUES ('phpgwapi','system_charset','$to')",__LINE__,__FILE__);
|
||||
$GLOBALS['egw_setup']->db->insert($GLOBALS['egw_setup']->config_table,array(
|
||||
'config_value' => $to,
|
||||
),array(
|
||||
'config_app' => 'phpgwapi',
|
||||
'config_name' => 'systemcharset',
|
||||
),__LINE__,__FILE__);
|
||||
}
|
||||
|
||||
$setup_tpl->set_var('stage_title',$stage_title);
|
||||
|
Loading…
Reference in New Issue
Block a user