From cfb29e83ddd6514c14c87cddb2024b9ef8370ef5 Mon Sep 17 00:00:00 2001 From: seek3r Date: Mon, 5 Feb 2001 20:40:30 +0000 Subject: [PATCH] switching to new definition as documented in phpgwapi/doc/class.acounts I for accounts_sql we still need to add a few functions. --- phpgwapi/inc/class.accounts.inc.php | 1 + phpgwapi/inc/class.accounts_sql.inc.php | 267 +++++++----------------- 2 files changed, 75 insertions(+), 193 deletions(-) diff --git a/phpgwapi/inc/class.accounts.inc.php b/phpgwapi/inc/class.accounts.inc.php index 345d21a80b..c35cd8a9b8 100644 --- a/phpgwapi/inc/class.accounts.inc.php +++ b/phpgwapi/inc/class.accounts.inc.php @@ -1,3 +1,4 @@ \ No newline at end of file diff --git a/phpgwapi/inc/class.accounts_sql.inc.php b/phpgwapi/inc/class.accounts_sql.inc.php index b88f223c97..5341704e19 100644 --- a/phpgwapi/inc/class.accounts_sql.inc.php +++ b/phpgwapi/inc/class.accounts_sql.inc.php @@ -24,175 +24,49 @@ /* $Id$ */ - class accounts + class accounts_ { var $db; var $account_id; var $data; - - function accounts($account_id = "") - { - global $phpgw_info, $phpgw; - - if (! $account_id) { - $this->account_id = $phpgw_info["user"]["account_id"]; - } - $this->db = $phpgw->db; - //$this->read(); - } - - function read() - { - $this->db->query("select * from phpgw_accounts where account_id='" . $this->account_id . "'",__LINE__,__FILE__); - $this->db->next_record(); - - $this->data["userid"] = $this->db->f("account_id"); - $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["fullname"] = $this->db->f("account_firstname") . " " - . $this->db->f("account_lastname"); - - // $apps = CreateObject('phpgwapi.applications',intval($phpgw_info["user"]["account_id"])); - // $prefs = CreateObject('phpgwapi.preferences',intval($phpgw_info["user"]["account_id"])); - // $phpgw_info["user"]["preferences"] = $prefs->get_saved_preferences(); - // $phpgw_info["user"]["apps"] = $apps->enabled_apps(); - - $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"); - } + var $memberships; + var $members; function read_repository() { - return $this->data; + global $phpgw, $phpgw_info; + $this->db->query("select * from phpgw_accounts where account_id='" . $this->account_id . "'",__LINE__,__FILE__); + $this->db->next_record(); + + $this->data["userid"] = $this->db->f("account_id"); + $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["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"); + return $this->data; } - function save_repository() + function get_list() { - global $phpgw_info, $phpgw; - $db = $phpgw->db; - - /* ********This sets the server variables from the database******** */ - $db->query("select * from config",__LINE__,__FILE__); - while ($db->next_record()) { - $phpgw_info["server"][$db->f("config_name")] = $db->f("config_value"); - } - - $phpgw_info_temp["user"] = $phpgw_info["user"]; - $phpgw_info_temp["apps"] = $phpgw_info["apps"]; - $phpgw_info_temp["server"] = $phpgw_info["server"]; - $phpgw_info_temp["hooks"] = $phpgw->hooks->read(); - $phpgw_info_temp["user"]["preferences"] = $phpgw_info["user"]["preferences"]; - $phpgw_info_temp["user"]["kp3"] = ""; // We don't want it anywhere in the - // database for security. - if ($PHP_VERSION < "4.0.0") { - $info_string = addslashes($phpgw->crypto->encrypt($phpgw_info_temp)); - } else { - $info_string = $phpgw->crypto->encrypt($phpgw_info_temp); - } - $db->query("update phpgw_sessions set session_info='$info_string' where session_id='" - . $phpgw_info["user"]["sessionid"] . "'",__LINE__,__FILE__); - } - - - function read_groups($id) - { - global $phpgw_info, $phpgw; - - if (gettype($id) == "string") { $id = $this->name2id($id); } - $groups = Array(); - $group_memberships = $phpgw->acl->get_location_list_for_id("phpgw_group", 1, intval($id)); - if (!$group_memberships) { return False; } - for ($idx=0; $idxdb->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") + ); } - return $groups; - } - - function read_group_names($lid = ""){ - return $this->security_equals($lid); - } - - function security_equals($lid = "") - { - global $phpgw, $phpgw_info; - - if (! $lid) { - $lid = $phpgw_info["user"]["userid"]; - } - $groups = $this->read_groups($lid); - - $i = 0; - while ($groups && $group = each($groups)) { - $this->db->query("select group_name from groups where group_id=".$group[0],__LINE__,__FILE__); - $this->db->next_record(); - $group_names[$i][0] = $group[0]; - $group_names[$i][1] = $this->db->f("group_name"); - $group_names[$i++][2] = $group[1]; - } - - if (! $lid) { - $this->group_names = $group_names; - } - - return $group_names; - } - - - // This is used to convert a raw group string (,5,6,7,) into a string of - // there names. - // Example: accounting, billing, developers - function convert_string_to_names($gs) - { - global $phpgw; - - $groups = explode(",",$gs); - - $s = ""; - for ($i=1;$idb->query("select group_name from groups where group_id=".$groups[$i]); - $phpgw->db->query("select group_name from groups where group_id=".$group_number[0],__LINE__,__FILE__); - $phpgw->db->next_record(); - $s .= $phpgw->db->f("group_name"); - if (count($groups) != 0 && $i != count($groups)-2) - $s .= ","; - } - return $s; - } - - - function listusers($group="") - { - global $phpgw; - - if ($group) { - $users = $phpgw->acl->get_ids_for_location($group, 1, "phpgw_group", "u"); - reset ($users); - $sql = "select account_lid,account_firstname,account_lastname from phpgw_accounts where account_id in ("; - for ($idx=0; $idxdb->query($sql,__LINE__,__FILE__); - } else { - $this->db->query("select account_lid,account_firstname,account_lastname from phpgw_accounts",__LINE__,__FILE__); - } - $i = 0; - while ($this->db->next_record()) { - $accounts["account_lid"][$i] = $this->db->f("account_lid"); - $accounts["account_firstname"][$i] = $this->db->f("account_firstname"); - $accounts["account_lastname"][$i] = $this->db->f("account_lastname"); - $i++; - } - return $accounts; + return $accounts; } function name2id($account_name) @@ -224,48 +98,55 @@ function get_type($account_id) { - global $phpgw, $phpgw_info; + global $phpgw, $phpgw_info; - $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(); - return $this->db->f("account_type"); - } else { - return False; - } + $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(); + return $this->db->f("account_type"); + } else { + return False; + } } - function exists($accountname) + function exists($account_id) { - $this->db->query("SELECT account_id FROM phpgw_accounts WHERE account_lid='".$accountname."'",__LINE__,__FILE__); - if ($this->db->num_rows()) { - return True; - } else { - return False; - } + global $phpgw, $phpgw_info; + if (gettype($account_id) == "string") { + $account_id = $this->name2id($account_id); + $sql = "SELECT account_id FROM phpgw_accounts WHERE account_lid='".$account_id."'"; + }else{ + $sql = "SELECT account_id FROM phpgw_accounts WHERE account_id='".$account_id."'"; + } + $this->db->query($sql,__LINE__,__FILE__); + if ($this->db->num_rows()) { + return True; + } else { + return False; + } } - function auto_generate($accountname, $passwd, $defaultprefs ="") + function auto_add($accountname, $passwd, $default_prefs = False, $default_acls = False) { - global $phpgw, $phpgw_info; - $accountid = mt_rand (100, 600000); - if ($defaultprefs =="") { - $defaultprefs = 'a:5:{s:6:"common";a:1:{s:0:"";s:2:"en";}s:11:"addressbook";a:1:{s:0:"";s:4:"True";}i:8;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";}}'; - } - $sql = "insert into phpgw_accounts"; - $sql .= "(account_id, account_lid, account_pwd, account_firstname, account_lastname, account_lastpwd_change, account_status, account_type)"; - $sql .= "values (".$accountid.", '".$accountname."', '".md5($passwd)."', '".$accountname."', 'AutoCreated', ".time().", 'A','u')"; - $this->db->query($sql); - $this->db->query("insert into preferences (preference_owner, preference_value) values ('".$accountid."', '$defaultprefs')"); - $this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_account_type, acl_rights)values('preferences', 'changepassword', ".$accountid.", 'u', 0)",__LINE__,__FILE__); - $this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_account_type, acl_rights) values('phpgw_group', '1', ".$accountid.", 'u', 1)",__LINE__,__FILE__); - $this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_account_type, acl_rights) values('addressbook', 'run', ".$accountid.", 'u', 1)",__LINE__,__FILE__); - $this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_account_type, acl_rights) values('filemanager', 'run', ".$accountid.", 'u', 1)",__LINE__,__FILE__); - $this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_account_type, acl_rights) values('calendar', 'run', ".$accountid.", 'u', 1)",__LINE__,__FILE__); - $this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_account_type, acl_rights) values('email', 'run', ".$accountid.", 'u', 1)",__LINE__,__FILE__); - $this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_account_type, acl_rights) values('notes', 'run', ".$accountid.", 'u', 1)",__LINE__,__FILE__); - $this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_account_type, acl_rights) values('todo', 'run', ".$accountid.", 'u', 1)",__LINE__,__FILE__); - return $accountid; + global $phpgw, $phpgw_info; + $accountid = mt_rand (100, 600000); + if ($default_prefs == False) { + $default_prefs = 'a:5:{s:6:"common";a:1:{s:0:"";s:2:"en";}s:11:"addressbook";a:1:{s:0:"";s:4:"True";}i:8;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";}}'; + } + $sql = "insert into phpgw_accounts"; + $sql .= "(account_id, account_lid, account_type, account_pwd, account_firstname, account_lastname, account_lastpwd_change, account_status)"; + $sql .= "values (".$accountid.", '".$accountname."','u', '".md5($passwd)."', '".$accountname."', 'AutoCreated', ".time().", 'A')"; + $this->db->query($sql); + $this->db->query("insert into preferences (preference_owner, preference_value) values ('".$accountid."', '$default_prefs')"); + $this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_rights)values('preferences', 'changepassword', ".$accountid.", 'u', 0)",__LINE__,__FILE__); + $this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_rights) values('phpgw_group', '1', ".$accountid.", 'u', 1)",__LINE__,__FILE__); + $this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_rights) values('addressbook', 'run', ".$accountid.", 'u', 1)",__LINE__,__FILE__); + $this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_rights) values('filemanager', 'run', ".$accountid.", 'u', 1)",__LINE__,__FILE__); + $this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_rights) values('calendar', 'run', ".$accountid.", 'u', 1)",__LINE__,__FILE__); + $this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_rights) values('email', 'run', ".$accountid.", 'u', 1)",__LINE__,__FILE__); + $this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_rights) values('notes', 'run', ".$accountid.", 'u', 1)",__LINE__,__FILE__); + $this->db->query("insert into phpgw_acl (acl_appname, acl_location, acl_account, acl_rights) values('todo', 'run', ".$accountid.", 'u', 1)",__LINE__,__FILE__); + return $accountid; } } //end of class ?>