[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] CVS: phpgwapi/inc class.accounts_sql.inc.php, 1.80.2.
From: |
Dave Hall <address@hidden> |
Subject: |
[Phpgroupware-cvs] CVS: phpgwapi/inc class.accounts_sql.inc.php, 1.80.2.8.2.12, 1.80.2.8.2.13 |
Date: |
Fri, 12 Sep 2003 20:08:04 -0400 |
Update of /cvsroot/phpgroupware/phpgwapi/inc
In directory subversions:/tmp/cvs-serv9443
Modified Files:
Tag: Version-0_9_16-branch
class.accounts_sql.inc.php
Log Message:
lex told me to commit this ... dunno what it fixes
Index: class.accounts_sql.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/phpgwapi/inc/class.accounts_sql.inc.php,v
retrieving revision 1.80.2.8.2.12
retrieving revision 1.80.2.8.2.13
diff -C2 -r1.80.2.8.2.12 -r1.80.2.8.2.13
*** class.accounts_sql.inc.php 12 Sep 2003 00:28:52 -0000 1.80.2.8.2.12
--- class.accounts_sql.inc.php 13 Sep 2003 00:08:01 -0000 1.80.2.8.2.13
***************
*** 1,477 ****
! <?php
!
/**************************************************************************\
! * phpGroupWare API - Accounts manager for SQL
*
! * Written by Joseph Engo <address@hidden> *
! * and Dan Kuykendall <address@hidden> *
! * and Bettina Gille address@hidden *
! * View and manipulate account records using SQL
*
! * Copyright (C) 2000 - 2002 Joseph Engo
*
! * Copyright (C) 2003 Joseph Engo, Bettina Gille
*
! *
------------------------------------------------------------------------ *
! * This library is part of the phpGroupWare API
*
! * http://www.phpgroupware.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$ */
!
! /*!
! @class_start accounts
! @abstract Class for handling user and group accounts
! */
! class accounts_
! {
! var $db;
! var $account_id;
! var $data;
! var $total;
!
! function accounts_()
! {
! /* Don't think this ever gets called */
! $this->db = $GLOBALS['phpgw']->db;
! }
!
! function list_methods($_type='xmlrpc')
! {
! if (is_array($_type))
! {
! $_type = $_type['type'] ? $_type['type'] :
$_type[0];
! }
!
! switch($_type)
! {
! case 'xmlrpc':
! $xml_functions = array(
! 'get_list' => array(
! 'function' =>
'get_list',
! 'signature' =>
array(array(xmlrpcStruct)),
! 'docstring' =>
lang('Returns a full list of accounts on the system. Warning: This is return
can be quite large')
! ),
! 'list_methods' => array(
! 'function' =>
'list_methods',
! 'signature' =>
array(array(xmlrpcStruct,xmlrpcString)),
! 'docstring' =>
lang('Read this list of methods.')
! )
! );
! return $xml_functions;
! break;
! case 'soap':
! return $this->soap_functions;
! break;
! default:
! return array();
! break;
! }
! }
!
! /*!
! @function read_repository
! @abstract grabs the records from the data store
! */
! function read_repository()
! {
! $this->db->query('SELECT * FROM phpgw_accounts WHERE
account_id=' . intval($this->account_id),__LINE__,__FILE__);
! $this->db->next_record();
!
! $this->data['userid'] =
$this->db->f('account_lid');
! $this->data['account_id'] =
$this->db->f('account_id');
! $this->data['account_lid'] =
$this->db->f('account_lid');
! $this->data['firstname'] =
$this->db->f('account_firstname');
! $this->data['lastname'] =
$this->db->f('account_lastname');
! $this->data['account_firstname'] =
$this->db->f('account_firstname');
! $this->data['account_lastname'] =
$this->db->f('account_lastname');
! $this->data['fullname'] =
$this->db->f('account_firstname') . ' ' . $this->db->f('account_lastname');
! $this->data['lastlogin'] =
$this->db->f('account_lastlogin');
! $this->data['lastloginfrom'] =
$this->db->f('account_lastloginfrom');
! $this->data['lastpasswd_change'] =
$this->db->f('account_lastpwd_change');
! $this->data['status'] =
$this->db->f('account_status');
! $this->data['expires'] =
$this->db->f('account_expires');
! $this->data['person_id'] =
$this->db->f('person_id');
! return $this->data;
! }
!
! /*!
! @function save_repository
! @abstract saves the records to the data store
! */
! function save_repository()
! {
! $this->db->query("UPDATE phpgw_accounts SET
account_firstname='" . $this->data['account_firstname']
! . "',
account_lastname='" . $this->data['account_lastname'] . "', account_status='"
! . $this->data['status']
. "', account_expires=" . $this->data['expires']
! .
($this->data['account_lid']?", account_lid='".$this->data['account_lid']."'":'')
! .
($this->data['person_id']?', person_id=' . $this->data['person_id']:'') . '
WHERE account_id='
! .
intval($this->account_id),__LINE__,__FILE__);
! }
!
! function delete($accountid = '')
! {
! $account_id = get_account_id($accountid);
!
! /* Do this last since we are depending upon this record
to get the account_lid above */
! $tables_array = Array('phpgw_accounts');
! $this->db->lock($tables_array);
! $this->db->query('DELETE FROM phpgw_accounts WHERE
account_id=' . $account_id);
! $this->db->unlock();
! }
!
! function get_list($_type='both',$start = '',$sort = '', $order
= '', $query = '', $offset = '')
! {
! // For XML-RPC
! /* if (is_array($_type))
! {
! $p = $_type;
! $_type = $p[0]['type'];
! $start = $p[0]['start'];
! $order = $p[0]['order'];
! $query = $p[0]['query'];
! $offset = $p[0]['offset'];
! }
! */
! if (! $sort)
! {
! $sort = "DESC";
! }
!
! if ($order)
! {
! $orderclause = "ORDER BY $order $sort";
! }
! else
! {
! $orderclause = "ORDER BY account_lid ASC";
! }
!
! switch($_type)
! {
! case 'accounts':
! $whereclause = "WHERE account_type =
'u'";
! break;
! case 'groups':
! $whereclause = "WHERE account_type =
'g'";
! break;
! default:
! $whereclause = '';
! }
!
! if ($query)
! {
! if ($whereclause)
! {
! $whereclause .= ' AND ( ';
! }
! else
! {
! $whereclause = ' WHERE ( ';
! }
!
! $whereclause .= " account_firstname LIKE
'%$query%' OR account_lastname LIKE "
! . "'%$query%' OR account_lid LIKE
'%$query%' )";
! }
!
! $sql = "SELECT * FROM phpgw_accounts $whereclause
$orderclause";
! if ($offset)
! {
!
$this->db->limit_query($sql,$start,__LINE__,__FILE__,$offset);
! }
! elseif ($start !== '')
! {
!
$this->db->limit_query($sql,$start,__LINE__,__FILE__);
! }
! else
! {
! $this->db->query($sql,__LINE__,__FILE__);
! }
!
! while ($this->db->next_record())
! {
! $accounts[] = Array(
! 'account_id' =>
$this->db->f('account_id'),
! 'account_lid' =>
$this->db->f('account_lid'),
! 'account_type' =>
$this->db->f('account_type'),
! 'account_firstname' =>
$this->db->f('account_firstname'),
! 'account_lastname' =>
$this->db->f('account_lastname'),
! 'account_status' =>
$this->db->f('account_status'),
! 'account_expires' =>
$this->db->f('account_expires')
! );
! }
! $this->db->query("SELECT count(*) FROM phpgw_accounts
$whereclause");
! $this->db->next_record();
! $this->total = $this->db->f(0);
!
! return $accounts;
! }
!
! function name2id($account_lid)
! {
! static $name_list;
!
! if (! $account_lid)
! {
! return False;
! }
!
! if($name_list[$account_lid] && $name_list[$account_lid]
!= '')
! {
! return $name_list[$account_lid];
! }
!
! $this->db->query("SELECT account_id FROM phpgw_accounts
WHERE account_lid='".$account_lid."'",__LINE__,__FILE__);
! if($this->db->num_rows())
! {
! $this->db->next_record();
! $name_list[$account_lid] =
intval($this->db->f('account_id'));
! }
! else
! {
! $name_list[$account_lid] = False;
! }
! return $name_list[$account_lid];
! }
!
! function id2name($account_id)
! {
! static $id_list;
!
! if (! $account_id)
! {
! return False;
! }
!
! if($id_list[$account_id])
! {
! return $id_list[$account_id];
! }
!
! $this->db->query('SELECT account_lid FROM
phpgw_accounts WHERE account_id=' . $account_id,__LINE__,__FILE__);
! if($this->db->num_rows())
! {
! $this->db->next_record();
! $id_list[$account_id] =
$this->db->f('account_lid');
! }
! else
! {
! $id_list[$account_id] = False;
! }
! return $id_list[$account_id];
! }
!
! function get_type($accountid)
! {
! static $account_type;
! $account_id = get_account_id($accountid);
!
! if (isset($this->account_type) && $account_id ==
$this->account_id)
! {
! return $this->account_type;
! }
!
! if(@isset($account_type[$account_id]) &&
@$account_type[$account_id])
! {
! return $account_type[$account_id];
! }
! elseif($account_id == '')
! {
! return False;
! }
! $this->db->Halt_On_Error = 'no';
! $this->db->query('SELECT account_type FROM
phpgw_accounts WHERE account_id=' . $account_id,__LINE__,__FILE__);
! if ($this->db->num_rows())
! {
! $this->db->next_record();
! $account_type[$account_id] =
$this->db->f('account_type');
! }
! else
! {
! $account_type[$account_id] = False;
! }
! $this->db->Halt_On_Error = 'yes';
! return $account_type[$account_id];
! }
!
! function exists($account_lid)
! {
! static $by_id, $by_lid;
!
! $sql = 'SELECT count(account_id) FROM phpgw_accounts
WHERE ';
! if(is_integer($account_lid))
! {
! if(@isset($by_id[$account_lid]) &&
$by_id[$account_lid] != '')
! {
! return $by_id[$account_lid];
! }
! $sql .= 'account_id=' . $account_lid;
! }
! else
! {
! if(@isset($by_lid[$account_lid]) &&
$by_lid[$account_lid] != '')
! {
! return $by_lid[$account_lid];
! }
! $sql .= "account_lid = '".$account_lid."'";
! }
!
! $this->db->query($sql,__LINE__,__FILE__);
! $this->db->next_record();
! $ret_val = $this->db->f(0) > 0;
! if(gettype($account_lid) == 'integer')
! {
! $by_id[$account_lid] = $ret_val;
! $by_lid[$this->id2name($account_lid)] =
$ret_val;
! }
! else
! {
! $by_lid[$account_lid] = $ret_val;
! $by_id[$this->name2id($account_lid)] = $ret_val;
! }
! return $ret_val;
! }
!
! function create($account_info,$default_prefs=True)
! {
! $this->db->query('insert into phpgw_accounts
(account_lid, account_type, account_pwd, '
! . "account_firstname, account_lastname,
account_status, account_expires, person_id) values ('"
! . $account_info['account_lid'] . "','" .
$account_info['account_type'] . "','"
! . md5($account_info['account_passwd']) . "', '"
. $account_info['account_firstname']
! . "','" . $account_info['account_lastname'] .
"','" . $account_info['account_status']
! . "'," . $account_info['account_expires'] . ','
. $account_info['person_id'] . ')',__LINE__,__FILE__);
!
! $accountid =
$this->db->get_last_insert_id('phpgw_accounts','account_id');
! if($accountid &&
is_object($GLOBALS['phpgw']->preferences) && $default_prefs)
! {
!
$GLOBALS['phpgw']->preferences->create_defaults($accountid);
! }
! return $accountid;
! }
!
! function auto_add($accountname, $passwd, $default_prefs =
False, $default_acls = False, $expiredate = 0, $account_status = 'A')
! {
! if ($expiredate)
! {
! $expires = mktime(2,0,0,date('n',$expiredate),
intval(date('d',$expiredate)), date('Y',$expiredate));
! }
! else
! {
!
if($GLOBALS['phpgw_info']['server']['auto_create_expire'])
! {
!
if($GLOBALS['phpgw_info']['server']['auto_create_expire'] == 'never')
! {
! $expires = -1;
! }
! else
! {
! $expiredate = time() +
$GLOBALS['phpgw_info']['server']['auto_create_expire'];
! $expires =
mktime(2,0,0,date('n',$expiredate), intval(date('d',$expiredate)),
date('Y',$expiredate));
! }
! }
! else
! {
! /* expire in 30 days by default */
! $expiredate = time() + ( ( 60 * 60 ) *
(30 * 24) );
! $expires =
mktime(2,0,0,date('n',$expiredate), intval(date('d',$expiredate)),
date('Y',$expiredate));
! }
! }
!
! $acct_info = array(
! 'account_lid' => $accountname,
! 'account_type' => 'u',
! 'account_passwd' => $passwd,
! 'account_firstname' => '',
! 'account_lastname' => '',
! 'account_status' => $account_status,
! 'account_expires' => $expires
! );
!
! $this->db->transaction_begin();
! $this->create($acct_info,$default_prefs);
! $accountid = $this->name2id($accountname);
!
! if ($default_acls == False)
! {
! $default_group_lid =
$GLOBALS['phpgw_info']['server']['default_group_lid'];
! $default_group_id =
$this->name2id($default_group_lid);
! $defaultgroupid = $default_group_id ?
$default_group_id : $this->name2id('Default');
! if ($defaultgroupid)
! {
! $this->db->query("insert into phpgw_acl
(acl_appname, acl_location, acl_account, acl_rights) values('phpgw_group', "
! . $defaultgroupid . ', ' .
$accountid . ', 1)',__LINE__,__FILE__);
! $this->db->query("insert into phpgw_acl
(acl_appname, acl_location, acl_account, acl_rights) values('preferences',
'changepassword', " . $accountid . ', 1)',__LINE__,__FILE__);
! }
! else
! {
! // If they don't have a default group,
they need some sort of permissions.
! // This generally doesn't / shouldn't
happen, but will (jengo)
! $this->db->query("insert into phpgw_acl
(acl_appname, acl_location, acl_account, acl_rights) values('preferences',
'changepassword', " . $accountid . ', 1)',__LINE__,__FILE__);
!
! $apps = Array(
! 'addressbook',
! 'calendar',
! 'email',
! 'notes',
! 'todo',
! 'phpwebhosting',
! 'manual'
! );
!
! @reset($apps);
! while(list($key,$app) = each($apps))
! {
! $this->db->query("INSERT INTO
phpgw_acl (acl_appname, acl_location, acl_account, acl_rights) VALUES ('" .
$app . "', 'run', " . $accountid . ', 1)',__LINE__,__FILE__);
! }
! }
! }
! $this->db->transaction_commit();
! return $accountid;
! }
!
! function get_account_name($accountid,&$lid,&$fname,&$lname)
! {
! static $account_name;
!
! $account_id = get_account_id($accountid);
! if(isset($account_name[$account_id]))
! {
! $lid = $account_name[$account_id]['lid'];
! $fname = $account_name[$account_id]['fname'];
! $lname = $account_name[$account_id]['lname'];
! return;
! }
! $db = $GLOBALS['phpgw']->db;
! $db->query('select
account_lid,account_firstname,account_lastname from phpgw_accounts where
account_id=' . $account_id,__LINE__,__FILE__);
! $db->next_record();
! $account_name[$account_id]['lid'] =
$db->f('account_lid');
! $account_name[$account_id]['fname'] =
$db->f('account_firstname');
! $account_name[$account_id]['lname'] =
$db->f('account_lastname');
! $lid = $account_name[$account_id]['lid'];
! $fname = $account_name[$account_id]['fname'];
! $lname = $account_name[$account_id]['lname'];
! return;
! }
!
! function get_account_data($account_id)
! {
! $this->account_id = $account_id;
! $this->read_repository();
!
! $data[$this->data['account_id']]['lid'] =
$this->data['account_lid'];
! $data[$this->data['account_id']]['firstname'] =
$this->data['firstname'];
! $data[$this->data['account_id']]['lastname'] =
$this->data['lastname'];
! $data[$this->data['account_id']]['fullname'] =
$this->data['fullname'];
! $data[$this->data['account_id']]['type'] =
$this->data['account_type'];
! return $data;
! }
! }
! /*!
! @class_end accounts
! */
--- 1,481 ----
! <?php
!
/**************************************************************************\
! * phpGroupWare API - Accounts manager for SQL
*
! * Written by Joseph Engo <address@hidden> *
! * and Dan Kuykendall <address@hidden> *
! * and Bettina Gille address@hidden *
! * View and manipulate account records using SQL
*
! * Copyright (C) 2000 - 2002 Joseph Engo
*
! * Copyright (C) 2003 Joseph Engo, Bettina Gille
*
! *
------------------------------------------------------------------------ *
! * This library is part of the phpGroupWare API
*
! * http://www.phpgroupware.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$ */
!
! /*!
! @class_start accounts
! @abstract Class for handling user and group accounts
! */
! class accounts_
! {
! var $db;
! var $account_id;
! var $data;
! var $total;
!
! function accounts_()
! {
! /* Don't think this ever gets called */
! $this->db = $GLOBALS['phpgw']->db;
! }
!
! function list_methods($_type='xmlrpc')
! {
! if (is_array($_type))
! {
! $_type = $_type['type'] ? $_type['type'] :
$_type[0];
! }
!
! switch($_type)
! {
! case 'xmlrpc':
! $xml_functions = array(
! 'get_list' => array(
! 'function' =>
'get_list',
! 'signature' =>
array(array(xmlrpcStruct)),
! 'docstring' =>
lang('Returns a full list of accounts on the system. Warning: This is return
can be quite large')
! ),
! 'list_methods' => array(
! 'function' =>
'list_methods',
! 'signature' =>
array(array(xmlrpcStruct,xmlrpcString)),
! 'docstring' =>
lang('Read this list of methods.')
! )
! );
! return $xml_functions;
! break;
! case 'soap':
! return $this->soap_functions;
! break;
! default:
! return array();
! break;
! }
! }
!
! /*!
! @function read_repository
! @abstract grabs the records from the data store
! */
! function read_repository()
! {
! $this->db->query('SELECT * FROM phpgw_accounts WHERE
account_id=' . intval($this->account_id),__LINE__,__FILE__);
! $this->db->next_record();
!
! $this->data['userid'] =
$this->db->f('account_lid');
! $this->data['account_id'] =
$this->db->f('account_id');
! $this->data['account_lid'] =
$this->db->f('account_lid');
! $this->data['firstname'] =
$this->db->f('account_firstname');
! $this->data['lastname'] =
$this->db->f('account_lastname');
! $this->data['account_firstname'] =
$this->db->f('account_firstname');
! $this->data['account_lastname'] =
$this->db->f('account_lastname');
! $this->data['fullname'] =
$this->db->f('account_firstname') . ' ' . $this->db->f('account_lastname');
! $this->data['lastlogin'] =
$this->db->f('account_lastlogin');
! $this->data['lastloginfrom'] =
$this->db->f('account_lastloginfrom');
! $this->data['lastpasswd_change'] =
$this->db->f('account_lastpwd_change');
! $this->data['status'] =
$this->db->f('account_status');
! $this->data['expires'] =
$this->db->f('account_expires');
! $this->data['person_id'] =
$this->db->f('person_id');
! return $this->data;
! }
!
! /*!
! @function save_repository
! @abstract saves the records to the data store
! */
! function save_repository()
! {
! $this->db->query("UPDATE phpgw_accounts SET
account_firstname='" . $this->data['account_firstname']
! . "',
account_lastname='" . $this->data['account_lastname'] . "', account_status='"
! . $this->data['status']
. "', account_expires=" . $this->data['expires']
! .
($this->data['account_lid']?", account_lid='".$this->data['account_lid']."'":'')
! .
($this->data['person_id']?', person_id=' . $this->data['person_id']:'') . '
WHERE account_id='
! .
intval($this->account_id),__LINE__,__FILE__);
! }
!
! function delete($accountid = '')
! {
! $account_id = get_account_id($accountid);
!
! /* Do this last since we are depending upon this record
to get the account_lid above */
! $tables_array = Array('phpgw_accounts');
! $this->db->lock($tables_array);
! $this->db->query('DELETE FROM phpgw_accounts WHERE
account_id=' . $account_id);
! $this->db->unlock();
! }
!
! function get_list($_type='both',$start = '',$sort = '', $order
= '', $query = '', $offset = '')
! {
! // For XML-RPC
! /* if (is_array($_type))
! {
! $p = $_type;
! $_type = $p[0]['type'];
! $start = $p[0]['start'];
! $order = $p[0]['order'];
! $query = $p[0]['query'];
! $offset = $p[0]['offset'];
! }
! */
! if (! $sort)
! {
! $sort = "DESC";
! }
!
! if ($order)
! {
! $orderclause = "ORDER BY $order $sort";
! }
! else
! {
! $orderclause = "ORDER BY account_lid ASC";
! }
!
! switch($_type)
! {
! case 'accounts':
! $whereclause = "WHERE account_type =
'u'";
! break;
! case 'groups':
! $whereclause = "WHERE account_type =
'g'";
! break;
! default:
! $whereclause = '';
! }
!
! if ($query)
! {
! if ($whereclause)
! {
! $whereclause .= ' AND ( ';
! }
! else
! {
! $whereclause = ' WHERE ( ';
! }
!
! $whereclause .= " account_firstname LIKE
'%$query%' OR account_lastname LIKE "
! . "'%$query%' OR account_lid LIKE
'%$query%' )";
! }
!
! $sql = "SELECT * FROM phpgw_accounts $whereclause
$orderclause";
! if ($offset)
! {
!
$this->db->limit_query($sql,$start,__LINE__,__FILE__,$offset);
! }
! elseif ($start !== '')
! {
!
$this->db->limit_query($sql,$start,__LINE__,__FILE__);
! }
! else
! {
! $this->db->query($sql,__LINE__,__FILE__);
! }
!
! while ($this->db->next_record())
! {
! $accounts[] = Array(
! 'account_id' =>
$this->db->f('account_id'),
! 'account_lid' =>
$this->db->f('account_lid'),
! 'account_type' =>
$this->db->f('account_type'),
! 'account_firstname' =>
$this->db->f('account_firstname'),
! 'account_lastname' =>
$this->db->f('account_lastname'),
! 'account_status' =>
$this->db->f('account_status'),
! 'account_expires' =>
$this->db->f('account_expires')
! );
! }
! $this->db->query("SELECT count(*) FROM phpgw_accounts
$whereclause");
! $this->db->next_record();
! $this->total = $this->db->f(0);
!
! return $accounts;
! }
!
! function name2id($account_lid)
! {
! static $name_list;
!
! if (! $account_lid)
! {
! return False;
! }
!
! if($name_list[$account_lid] && $name_list[$account_lid]
!= '')
! {
! return $name_list[$account_lid];
! }
!
! $this->db->query("SELECT account_id FROM phpgw_accounts
WHERE account_lid='".$account_lid."'",__LINE__,__FILE__);
! if($this->db->num_rows())
! {
! $this->db->next_record();
! $name_list[$account_lid] =
intval($this->db->f('account_id'));
! }
! else
! {
! $name_list[$account_lid] = False;
! }
! return $name_list[$account_lid];
! }
!
! function id2name($account_id)
! {
! static $id_list;
!
! if (! $account_id)
! {
! return False;
! }
!
! if($id_list[$account_id])
! {
! return $id_list[$account_id];
! }
!
! $this->db->query('SELECT account_lid FROM
phpgw_accounts WHERE account_id=' . $account_id,__LINE__,__FILE__);
! if($this->db->num_rows())
! {
! $this->db->next_record();
! $id_list[$account_id] =
$this->db->f('account_lid');
! }
! else
! {
! $id_list[$account_id] = False;
! }
! return $id_list[$account_id];
! }
!
! function get_type($accountid)
! {
! static $account_type;
! $account_id = get_account_id($accountid);
!
! if (isset($this->account_type) && $account_id ==
$this->account_id)
! {
! return $this->account_type;
! }
!
! if(@isset($account_type[$account_id]) &&
@$account_type[$account_id])
! {
! return $account_type[$account_id];
! }
! elseif($account_id == '')
! {
! return False;
! }
! $this->db->Halt_On_Error = 'no';
! $this->db->query('SELECT account_type FROM
phpgw_accounts WHERE account_id=' . $account_id,__LINE__,__FILE__);
! if ($this->db->num_rows())
! {
! $this->db->next_record();
! $account_type[$account_id] =
$this->db->f('account_type');
! }
! else
! {
! $account_type[$account_id] = False;
! }
! $this->db->Halt_On_Error = 'yes';
! return $account_type[$account_id];
! }
!
! function exists($account_lid)
! {
! static $by_id, $by_lid;
!
! $sql = 'SELECT count(account_id) FROM phpgw_accounts
WHERE ';
! if(is_integer($account_lid))
! {
! if(@isset($by_id[$account_lid]) &&
$by_id[$account_lid] != '')
! {
! return $by_id[$account_lid];
! }
! $sql .= 'account_id=' . $account_lid;
! }
! else
! {
! if(@isset($by_lid[$account_lid]) &&
$by_lid[$account_lid] != '')
! {
! return $by_lid[$account_lid];
! }
! $sql .= "account_lid = '".$account_lid."'";
! }
!
! $this->db->query($sql,__LINE__,__FILE__);
! $this->db->next_record();
! $ret_val = $this->db->f(0) > 0;
! if(gettype($account_lid) == 'integer')
! {
! $by_id[$account_lid] = $ret_val;
! $by_lid[$this->id2name($account_lid)] =
$ret_val;
! }
! else
! {
! $by_lid[$account_lid] = $ret_val;
! $by_id[$this->name2id($account_lid)] = $ret_val;
! }
! return $ret_val;
! }
!
! function create($account_info,$default_prefs=True)
! {
! if(!isset($account_info['person_id']))
! {
! $account_info['person_id']='NULL';
! }
! $this->db->query('insert into phpgw_accounts
(account_lid, account_type, account_pwd, '
! . "account_firstname, account_lastname,
account_status, account_expires, person_id) values ('"
! . $account_info['account_lid'] . "','" .
$account_info['account_type'] . "','"
! . md5($account_info['account_passwd']) . "', '"
. $account_info['account_firstname']
! . "','" . $account_info['account_lastname'] .
"','" . $account_info['account_status']
! . "'," . $account_info['account_expires'] . ','
. $account_info['person_id'] . ')',__LINE__,__FILE__);
!
! $accountid =
$this->db->get_last_insert_id('phpgw_accounts','account_id');
! if($accountid &&
is_object($GLOBALS['phpgw']->preferences) && $default_prefs)
! {
!
$GLOBALS['phpgw']->preferences->create_defaults($accountid);
! }
! return $accountid;
! }
!
! function auto_add($accountname, $passwd, $default_prefs =
False, $default_acls = False, $expiredate = 0, $account_status = 'A')
! {
! if ($expiredate)
! {
! $expires = mktime(2,0,0,date('n',$expiredate),
intval(date('d',$expiredate)), date('Y',$expiredate));
! }
! else
! {
!
if($GLOBALS['phpgw_info']['server']['auto_create_expire'])
! {
!
if($GLOBALS['phpgw_info']['server']['auto_create_expire'] == 'never')
! {
! $expires = -1;
! }
! else
! {
! $expiredate = time() +
$GLOBALS['phpgw_info']['server']['auto_create_expire'];
! $expires =
mktime(2,0,0,date('n',$expiredate), intval(date('d',$expiredate)),
date('Y',$expiredate));
! }
! }
! else
! {
! /* expire in 30 days by default */
! $expiredate = time() + ( ( 60 * 60 ) *
(30 * 24) );
! $expires =
mktime(2,0,0,date('n',$expiredate), intval(date('d',$expiredate)),
date('Y',$expiredate));
! }
! }
!
! $acct_info = array(
! 'account_lid' => $accountname,
! 'account_type' => 'u',
! 'account_passwd' => $passwd,
! 'account_firstname' => '',
! 'account_lastname' => '',
! 'account_status' => $account_status,
! 'account_expires' => $expires
! );
!
! $this->db->transaction_begin();
! $this->create($acct_info,$default_prefs);
! $accountid = $this->name2id($accountname);
!
! if ($default_acls == False)
! {
! $default_group_lid =
$GLOBALS['phpgw_info']['server']['default_group_lid'];
! $default_group_id =
$this->name2id($default_group_lid);
! $defaultgroupid = $default_group_id ?
$default_group_id : $this->name2id('Default');
! if ($defaultgroupid)
! {
! $this->db->query("insert into phpgw_acl
(acl_appname, acl_location, acl_account, acl_rights) values('phpgw_group', "
! . $defaultgroupid . ', ' .
$accountid . ', 1)',__LINE__,__FILE__);
! $this->db->query("insert into phpgw_acl
(acl_appname, acl_location, acl_account, acl_rights) values('preferences',
'changepassword', " . $accountid . ', 1)',__LINE__,__FILE__);
! }
! else
! {
! // If they don't have a default group,
they need some sort of permissions.
! // This generally doesn't / shouldn't
happen, but will (jengo)
! $this->db->query("insert into phpgw_acl
(acl_appname, acl_location, acl_account, acl_rights) values('preferences',
'changepassword', " . $accountid . ', 1)',__LINE__,__FILE__);
!
! $apps = Array(
! 'addressbook',
! 'calendar',
! 'email',
! 'notes',
! 'todo',
! 'phpwebhosting',
! 'manual'
! );
!
! @reset($apps);
! while(list($key,$app) = each($apps))
! {
! $this->db->query("INSERT INTO
phpgw_acl (acl_appname, acl_location, acl_account, acl_rights) VALUES ('" .
$app . "', 'run', " . $accountid . ', 1)',__LINE__,__FILE__);
! }
! }
! }
! $this->db->transaction_commit();
! return $accountid;
! }
!
! function get_account_name($accountid,&$lid,&$fname,&$lname)
! {
! static $account_name;
!
! $account_id = get_account_id($accountid);
! if(isset($account_name[$account_id]))
! {
! $lid = $account_name[$account_id]['lid'];
! $fname = $account_name[$account_id]['fname'];
! $lname = $account_name[$account_id]['lname'];
! return;
! }
! $db = $GLOBALS['phpgw']->db;
! $db->query('select
account_lid,account_firstname,account_lastname from phpgw_accounts where
account_id=' . $account_id,__LINE__,__FILE__);
! $db->next_record();
! $account_name[$account_id]['lid'] =
$db->f('account_lid');
! $account_name[$account_id]['fname'] =
$db->f('account_firstname');
! $account_name[$account_id]['lname'] =
$db->f('account_lastname');
! $lid = $account_name[$account_id]['lid'];
! $fname = $account_name[$account_id]['fname'];
! $lname = $account_name[$account_id]['lname'];
! return;
! }
!
! function get_account_data($account_id)
! {
! $this->account_id = $account_id;
! $this->read_repository();
!
! $data[$this->data['account_id']]['lid'] =
$this->data['account_lid'];
! $data[$this->data['account_id']]['firstname'] =
$this->data['firstname'];
! $data[$this->data['account_id']]['lastname'] =
$this->data['lastname'];
! $data[$this->data['account_id']]['fullname'] =
$this->data['fullname'];
! $data[$this->data['account_id']]['type'] =
$this->data['account_type'];
! return $data;
! }
! }
! /*!
! @class_end accounts
! */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpgroupware-cvs] CVS: phpgwapi/inc class.accounts_sql.inc.php, 1.80.2.8.2.12, 1.80.2.8.2.13,
Dave Hall <address@hidden> <=