From c85d34c0feb518dde2a3e6fce8ca3acf9c4cfd1f Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Wed, 2 Nov 2005 11:45:52 +0000 Subject: [PATCH] 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. --- admin/check_acl.php | 2 +- admin/inc/class.boaccounts.inc.php | 54 +- admin/inc/class.soaccounts.inc.php | 15 - admin/inc/class.soapplications.inc.php | 20 +- admin/inc/class.soldap_mgr.inc.php | 4 +- admin/inc/class.solog.inc.php | 54 +- admin/inc/hook_after_navbar.inc.php | 2 +- admin/inc/hook_deleteaccount.inc.php | 6 +- home/inc/class.updates.inc.php | 19 +- phpgwapi/inc/class.accounts.inc.php | 8 +- phpgwapi/inc/class.accounts_contacts.inc.php | 108 ++-- phpgwapi/inc/class.accounts_ldap.inc.php | 34 +- phpgwapi/inc/class.accounts_sql.inc.php | 41 +- phpgwapi/inc/class.acl.inc.php | 83 ++- phpgwapi/inc/class.applications.inc.php | 200 ++++--- phpgwapi/inc/class.auth.inc.php | 103 ++-- phpgwapi/inc/class.auth_ads.inc.php | 11 +- phpgwapi/inc/class.auth_http.inc.php | 59 +- phpgwapi/inc/class.auth_ldap.inc.php | 60 +- phpgwapi/inc/class.auth_mail.inc.php | 68 +-- phpgwapi/inc/class.auth_nis.inc.php | 10 - phpgwapi/inc/class.auth_pam.inc.php | 55 +- phpgwapi/inc/class.auth_sql.inc.php | 241 ++++---- phpgwapi/inc/class.auth_sqlssl.inc.php | 61 +- phpgwapi/inc/class.common.inc.php | 590 ++++++++++--------- phpgwapi/inc/class.config.inc.php | 9 +- phpgwapi/inc/class.db_backup.inc.php | 17 +- phpgwapi/inc/class.egw.inc.php | 2 +- phpgwapi/inc/class.errorlog.inc.php | 24 +- phpgwapi/inc/class.log.inc.php | 20 +- phpgwapi/inc/class.sessions.inc.php | 4 +- phpgwapi/inc/class.translation_file.inc.php | 2 +- phpgwapi/inc/class.translation_sql.inc.php | 2 +- phpgwapi/inc/soap_functions.inc.php | 2 +- phpgwapi/inc/xml_functions.inc.php | 2 +- phpgwapi/setup/default_records.inc.php | 17 +- phpgwapi/setup/setup.inc.php | 16 +- phpgwapi/setup/tables_current.inc.php | 16 +- phpgwapi/setup/tables_update.inc.php | 153 +++-- preferences/inc/hook_preferences.inc.php | 2 +- resources/inc/class.so_acl.inc.php | 52 +- setup/applications.php | 2 +- setup/config.php | 78 +-- setup/inc/class.setup.inc.php | 92 ++- setup/inc/class.setup_detection.inc.php | 54 +- setup/inc/class.setup_process.inc.php | 12 +- setup/index.php | 9 +- setup/ldapexport.php | 12 +- setup/ldapimport.php | 6 +- setup/ldapmodify.php | 6 +- setup/setup_demo.php | 9 +- setup/system_charset.php | 8 +- 52 files changed, 1224 insertions(+), 1312 deletions(-) diff --git a/admin/check_acl.php b/admin/check_acl.php index 63301608e4..c487180e1c 100644 --- a/admin/check_acl.php +++ b/admin/check_acl.php @@ -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 '

'.lang('%1 ACL records of not (longer) existing accounts deleted.',$deleted)."

\n"; diff --git a/admin/inc/class.boaccounts.inc.php b/admin/inc/class.boaccounts.inc.php index 76591734fb..9fda826417 100755 --- a/admin/inc/class.boaccounts.inc.php +++ b/admin/inc/class.boaccounts.inc.php @@ -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; } diff --git a/admin/inc/class.soaccounts.inc.php b/admin/inc/class.soaccounts.inc.php index 121fab15d3..61a9bc658e 100755 --- a/admin/inc/class.soaccounts.inc.php +++ b/admin/inc/class.soaccounts.inc.php @@ -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']; } } diff --git a/admin/inc/class.soapplications.inc.php b/admin/inc/class.soapplications.inc.php index 8b0e6f220f..ed54af9ad8 100644 --- a/admin/inc/class.soapplications.inc.php +++ b/admin/inc/class.soapplications.inc.php @@ -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__ ); } diff --git a/admin/inc/class.soldap_mgr.inc.php b/admin/inc/class.soldap_mgr.inc.php index 4c91e8ca36..bdb1bf0cb8 100644 --- a/admin/inc/class.soldap_mgr.inc.php +++ b/admin/inc/class.soldap_mgr.inc.php @@ -156,11 +156,11 @@ #print "
DN: $accountDN
"; 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( diff --git a/admin/inc/class.solog.inc.php b/admin/inc/class.solog.inc.php index 45a4849ad5..a07609efea 100755 --- a/admin/inc/class.solog.inc.php +++ b/admin/inc/class.solog.inc.php @@ -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; $ierror_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; $ierror_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; $iaccounts_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); } diff --git a/admin/inc/hook_after_navbar.inc.php b/admin/inc/hook_after_navbar.inc.php index a4dbd8a6f2..bf8bacb987 100644 --- a/admin/inc/hook_after_navbar.inc.php +++ b/admin/inc/hook_after_navbar.inc.php @@ -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'); diff --git a/admin/inc/hook_deleteaccount.inc.php b/admin/inc/hook_deleteaccount.inc.php index bb84394306..23f04fc808 100755 --- a/admin/inc/hook_deleteaccount.inc.php +++ b/admin/inc/hook_deleteaccount.inc.php @@ -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']); } -?> diff --git a/home/inc/class.updates.inc.php b/home/inc/class.updates.inc.php index d9414e2569..079788f314 100755 --- a/home/inc/class.updates.inc.php +++ b/home/inc/class.updates.inc.php @@ -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'] = '

There is a new version of eGroupWare available. http://www.egroupware.org

'; + $updates['egroupware'] = '

'.lang('There is a new version of eGroupWare available'). + ' www.egroupware.org

'; } $_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; } - } - -?> diff --git a/phpgwapi/inc/class.accounts.inc.php b/phpgwapi/inc/class.accounts.inc.php index 3f606857a1..32e5a7e934 100644 --- a/phpgwapi/inc/class.accounts.inc.php +++ b/phpgwapi/inc/class.accounts.inc.php @@ -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, diff --git a/phpgwapi/inc/class.accounts_contacts.inc.php b/phpgwapi/inc/class.accounts_contacts.inc.php index 3ec4509a60..1667f4ebde 100644 --- a/phpgwapi/inc/class.accounts_contacts.inc.php +++ b/phpgwapi/inc/class.accounts_contacts.inc.php @@ -1,27 +1,27 @@ * - * 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 * + * 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; } } diff --git a/phpgwapi/inc/class.accounts_ldap.inc.php b/phpgwapi/inc/class.accounts_ldap.inc.php index a12f8f8d63..a168084ca1 100644 --- a/phpgwapi/inc/class.accounts_ldap.inc.php +++ b/phpgwapi/inc/class.accounts_ldap.inc.php @@ -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]; + } } diff --git a/phpgwapi/inc/class.accounts_sql.inc.php b/phpgwapi/inc/class.accounts_sql.inc.php index 76ed1dda40..f49154ea8b 100644 --- a/phpgwapi/inc/class.accounts_sql.inc.php +++ b/phpgwapi/inc/class.accounts_sql.inc.php @@ -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 - */ diff --git a/phpgwapi/inc/class.acl.inc.php b/phpgwapi/inc/class.acl.inc.php index 0678436201..c38f6f3c2e 100644 --- a/phpgwapi/inc/class.acl.inc.php +++ b/phpgwapi/inc/class.acl.inc.php @@ -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 diff --git a/phpgwapi/inc/class.applications.inc.php b/phpgwapi/inc/class.applications.inc.php index 72148dd4d6..2ce95c8efb 100755 --- a/phpgwapi/inc/class.applications.inc.php +++ b/phpgwapi/inc/class.applications.inc.php @@ -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; } } -?> diff --git a/phpgwapi/inc/class.auth.inc.php b/phpgwapi/inc/class.auth.inc.php index f19d503d20..23a645a5cb 100644 --- a/phpgwapi/inc/class.auth.inc.php +++ b/phpgwapi/inc/class.auth.inc.php @@ -1,24 +1,24 @@ * - * Copyright (C) 2004 Miles Lott * - * Many functions based on code from Frank Thomas * - * 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 * + * Copyright (C) 2004 Miles Lott * + * Many functions based on code from Frank Thomas * + * 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) { diff --git a/phpgwapi/inc/class.auth_ads.inc.php b/phpgwapi/inc/class.auth_ads.inc.php index 5b9a02277b..234e6750d3 100644 --- a/phpgwapi/inc/class.auth_ads.inc.php +++ b/phpgwapi/inc/class.auth_ads.inc.php @@ -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(); - } } ?> diff --git a/phpgwapi/inc/class.auth_http.inc.php b/phpgwapi/inc/class.auth_http.inc.php index 560d163ad9..328b15e844 100644 --- a/phpgwapi/inc/class.auth_http.inc.php +++ b/phpgwapi/inc/class.auth_http.inc.php @@ -1,28 +1,28 @@ * - * and Joseph Engo * - * 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 * + * and Joseph Engo * + * 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__); - } } -?> diff --git a/phpgwapi/inc/class.auth_ldap.inc.php b/phpgwapi/inc/class.auth_ldap.inc.php index d0e8a79b42..4ff110b6be 100644 --- a/phpgwapi/inc/class.auth_ldap.inc.php +++ b/phpgwapi/inc/class.auth_ldap.inc.php @@ -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__); - } - } } -?> diff --git a/phpgwapi/inc/class.auth_mail.inc.php b/phpgwapi/inc/class.auth_mail.inc.php index 25f27c2f35..a350d7d1ea 100644 --- a/phpgwapi/inc/class.auth_mail.inc.php +++ b/phpgwapi/inc/class.auth_mail.inc.php @@ -1,27 +1,27 @@ * - * 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 * + * 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__); - } } -?> diff --git a/phpgwapi/inc/class.auth_nis.inc.php b/phpgwapi/inc/class.auth_nis.inc.php index 76622b15ef..26e74ce2b4 100644 --- a/phpgwapi/inc/class.auth_nis.inc.php +++ b/phpgwapi/inc/class.auth_nis.inc.php @@ -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__); - } } -?> diff --git a/phpgwapi/inc/class.auth_pam.inc.php b/phpgwapi/inc/class.auth_pam.inc.php index 471144cc7d..4892ce675a 100644 --- a/phpgwapi/inc/class.auth_pam.inc.php +++ b/phpgwapi/inc/class.auth_pam.inc.php @@ -1,24 +1,24 @@ 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; } } -?> diff --git a/phpgwapi/inc/class.auth_sql.inc.php b/phpgwapi/inc/class.auth_sql.inc.php index 0b7201d534..6f9c90bade 100644 --- a/phpgwapi/inc/class.auth_sql.inc.php +++ b/phpgwapi/inc/class.auth_sql.inc.php @@ -1,31 +1,31 @@ * - * and Joseph Engo * - * Encryption types other than md5() added by * - * Miles Lott based on code from * - * http://www.thomas-alfeld.de/frank/ * - * massive code cleanup and * - * added password migration by * - * Cornelius Weiss * + * and Joseph Engo * + * Encryption types other than md5() added by * + * Miles Lott based on code from * + * http://www.thomas-alfeld.de/frank/ * + * massive code cleanup and * + * added password migration by * + * Cornelius Weiss 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; } } -?> diff --git a/phpgwapi/inc/class.auth_sqlssl.inc.php b/phpgwapi/inc/class.auth_sqlssl.inc.php index a708af93cf..5fc1e6ca96 100644 --- a/phpgwapi/inc/class.auth_sqlssl.inc.php +++ b/phpgwapi/inc/class.auth_sqlssl.inc.php @@ -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 "Debug SQL: uid - $username passwd - $passwd"; } + $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__); - } } -?> diff --git a/phpgwapi/inc/class.common.inc.php b/phpgwapi/inc/class.common.inc.php index e163c6373f..d3296e77a0 100644 --- a/phpgwapi/inc/class.common.inc.php +++ b/phpgwapi/inc/class.common.inc.php @@ -1,31 +1,31 @@ * - * and Joseph Engo * - * and Mark Peters * - * and Lars Kneschke * - * 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 * + * and Joseph Engo * + * and Mark Peters * + * and Lars Kneschke * + * 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)
- and .... to find out which languages are installed - */ + /** + * return the preferred langugae of the users + * + * it uses HTTP_ACCEPT_LANGUAGE (from the users browser)
+ * 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("Error: Can't connect to LDAP server %s!
",$host); + echo function_backtrace(1); return False; } @@ -340,19 +341,20 @@ } printf("Error: Can't bind to LDAP server: %s!
",$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
- 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
+ * 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 . ''; } - /*! - @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 lang() 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 lang() 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 = ''; @@ -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
'; 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
'; @@ -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 = '
'; @@ -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 '

eGroupWare internal error:

'.$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 '
core functions
'; @@ -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) diff --git a/phpgwapi/inc/class.config.inc.php b/phpgwapi/inc/class.config.inc.php index f84642912b..01710bafe8 100755 --- a/phpgwapi/inc/class.config.inc.php +++ b/phpgwapi/inc/class.config.inc.php @@ -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; } } -?> diff --git a/phpgwapi/inc/class.db_backup.inc.php b/phpgwapi/inc/class.db_backup.inc.php index 97b5a7fcc2..36822e5b95 100644 --- a/phpgwapi/inc/class.db_backup.inc.php +++ b/phpgwapi/inc/class.db_backup.inc.php @@ -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); } diff --git a/phpgwapi/inc/class.egw.inc.php b/phpgwapi/inc/class.egw.inc.php index d1b28eae29..6c2f5fd858 100644 --- a/phpgwapi/inc/class.egw.inc.php +++ b/phpgwapi/inc/class.egw.inc.php @@ -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 diff --git a/phpgwapi/inc/class.errorlog.inc.php b/phpgwapi/inc/class.errorlog.inc.php index 3405621b10..0c5424401d 100644 --- a/phpgwapi/inc/class.errorlog.inc.php +++ b/phpgwapi/inc/class.errorlog.inc.php @@ -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

\n"; $html .= "\t\t\n"; - $html .= "\t\t\n"; + $html .= "\t\t\n"; $html .= "\t\t\n"; $html .= "\t\t\n"; $html .= "\t\t\n"; diff --git a/phpgwapi/inc/class.log.inc.php b/phpgwapi/inc/class.log.inc.php index 88611c4b47..5a6f8a661b 100644 --- a/phpgwapi/inc/class.log.inc.php +++ b/phpgwapi/inc/class.log.inc.php @@ -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\n"; $html .= "\t\t\n"; - $html .= "\t\t\n"; - $html .= "\t\t\n"; + $html .= "\t\t\n"; + $html .= "\t\t\n"; $html .= "\t\t\n"; $html .= "\t\t\n"; $html .= "\t\t\n"; diff --git a/phpgwapi/inc/class.sessions.inc.php b/phpgwapi/inc/class.sessions.inc.php index b5c69f2540..bcb71799f3 100644 --- a/phpgwapi/inc/class.sessions.inc.php +++ b/phpgwapi/inc/class.sessions.inc.php @@ -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 "

session::create(login='$login') = '$this->sessionid': lid='$this->account_lid', domain='$this->account_domain'

\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); diff --git a/phpgwapi/inc/class.translation_file.inc.php b/phpgwapi/inc/class.translation_file.inc.php index 6d5c7e2c4d..df2029adfc 100644 --- a/phpgwapi/inc/class.translation_file.inc.php +++ b/phpgwapi/inc/class.translation_file.inc.php @@ -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); diff --git a/phpgwapi/inc/class.translation_sql.inc.php b/phpgwapi/inc/class.translation_sql.inc.php index 42d151aae3..ec1ab83a10 100644 --- a/phpgwapi/inc/class.translation_sql.inc.php +++ b/phpgwapi/inc/class.translation_sql.inc.php @@ -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'])) { diff --git a/phpgwapi/inc/soap_functions.inc.php b/phpgwapi/inc/soap_functions.inc.php index f146ef08b8..997d10ee26 100644 --- a/phpgwapi/inc/soap_functions.inc.php +++ b/phpgwapi/inc/soap_functions.inc.php @@ -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()) { diff --git a/phpgwapi/inc/xml_functions.inc.php b/phpgwapi/inc/xml_functions.inc.php index dacf54b7b0..74fe2409b5 100644 --- a/phpgwapi/inc/xml_functions.inc.php +++ b/phpgwapi/inc/xml_functions.inc.php @@ -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()) diff --git a/phpgwapi/setup/default_records.inc.php b/phpgwapi/setup/default_records.inc.php index 4534708d1d..695d94f99d 100644 --- a/phpgwapi/setup/default_records.inc.php +++ b/phpgwapi/setup/default_records.inc.php @@ -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')"); diff --git a/phpgwapi/setup/setup.inc.php b/phpgwapi/setup/setup.inc.php index 252427e350..cd725c4d10 100755 --- a/phpgwapi/setup/setup.inc.php +++ b/phpgwapi/setup/setup.inc.php @@ -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'; diff --git a/phpgwapi/setup/tables_current.inc.php b/phpgwapi/setup/tables_current.inc.php index b8b300c77a..b468addbd4 100644 --- a/phpgwapi/setup/tables_current.inc.php +++ b/phpgwapi/setup/tables_current.inc.php @@ -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() ), diff --git a/phpgwapi/setup/tables_update.inc.php b/phpgwapi/setup/tables_update.inc.php index 58be87b161..1d3d82d7d6 100644 --- a/phpgwapi/setup/tables_update.inc.php +++ b/phpgwapi/setup/tables_update.inc.php @@ -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']; } -?> \ No newline at end of file + + $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']; + } diff --git a/preferences/inc/hook_preferences.inc.php b/preferences/inc/hook_preferences.inc.php index 9af773f5da..8906f4a7e2 100644 --- a/preferences/inc/hook_preferences.inc.php +++ b/preferences/inc/hook_preferences.inc.php @@ -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); ?> diff --git a/resources/inc/class.so_acl.inc.php b/resources/inc/class.so_acl.inc.php index c529be8b9c..246656f9b2 100755 --- a/resources/inc/class.so_acl.inc.php +++ b/resources/inc/class.so_acl.inc.php @@ -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); } } diff --git a/setup/applications.php b/setup/applications.php index 82aa88b89e..2123c6eb1f 100644 --- a/setup/applications.php +++ b/setup/applications.php @@ -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__); } } diff --git a/setup/config.php b/setup/config.php index 563631e24c..0a965e00c9 100644 --- a/setup/config.php +++ b/setup/config.php @@ -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 '
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')); diff --git a/setup/inc/class.setup.inc.php b/setup/inc/class.setup.inc.php index 474c85d2a1..1b98c2a131 100644 --- a/setup/inc/class.setup.inc.php +++ b/setup/inc/class.setup.inc.php @@ -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 '
register_app(): ' . $appname . ', version: ' . $setup_info[$appname]['version'] . ', table: ' . $appstbl . '
'; @@ -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 "

setup::set_table_names: $name = '{$this->$name}'

\n"; + } + } } -?> diff --git a/setup/inc/class.setup_detection.inc.php b/setup/inc/class.setup_detection.inc.php index f64505660a..d4d16ab900 100755 --- a/setup/inc/class.setup_detection.inc.php +++ b/setup/inc/class.setup_detection.inc.php @@ -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()) { diff --git a/setup/inc/class.setup_process.inc.php b/setup/inc/class.setup_process.inc.php index 2250409fd2..edbe0771d4 100755 --- a/setup/inc/class.setup_process.inc.php +++ b/setup/inc/class.setup_process.inc.php @@ -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__); } } diff --git a/setup/index.php b/setup/index.php index 81b1079170..81f1391db6 100644 --- a/setup/index.php +++ b/setup/index.php @@ -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 = ''; diff --git a/setup/ldapexport.php b/setup/ldapexport.php index d4e1838598..feb6dc40c4 100644 --- a/setup/ldapexport.php +++ b/setup/ldapexport.php @@ -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()) { diff --git a/setup/ldapimport.php b/setup/ldapimport.php index d06d02b551..d6e962783a 100644 --- a/setup/ldapimport.php +++ b/setup/ldapimport.php @@ -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')); diff --git a/setup/ldapmodify.php b/setup/ldapmodify.php index 0aa16f9fc2..f1e0af93bc 100644 --- a/setup/ldapmodify.php +++ b/setup/ldapmodify.php @@ -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')); diff --git a/setup/setup_demo.php b/setup/setup_demo.php index 52b5170a4f..2fbc6aa18e 100644 --- a/setup/setup_demo.php +++ b/setup/setup_demo.php @@ -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'); diff --git a/setup/system_charset.php b/setup/system_charset.php index ef593e1e4c..edd276e4e0 100644 --- a/setup/system_charset.php +++ b/setup/system_charset.php @@ -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);
".$i."".$GLOBALS['phpgw']->common->show_date($err->timestamp)."".$GLOBALS['egw']->common->show_date($err->timestamp)."".$err->app."  ".$err->severity."".$err->code."
".$i."".$GLOBALS['phpgw']->common->show_date($err->timestamp)."".$GLOBALS['phpgw_info']['flags']['currentapp']."  ".$GLOBALS['egw']->common->show_date($err->timestamp)."".$GLOBALS['egw_info']['flags']['currentapp']."  ".$err->severity."".$err->code."".$err->langmsg()."