True, "nonavbar" => True);
$phpgw_info["flags"]["currentapp"] = "admin";
$phpgw_info["flags"]["disable_message_class"] = True;
$phpgw_info["flags"]["disable_send_class"] = True;
include("../header.inc.php");
if (! $account_id)
Header("Location: " . $phpgw->link("accounts.php"));
function change_owner($app,$table,$field,$new,$old)
{
global $phpgw, $phpgw_info;
if ($phpgw_info["apps"][$app]["enabled"] || ! $app) {
$phpgw->db->query("update $table set $field='$new' where $field='$old'");
}
}
if ($submit) {
$phpgw->db->query("select account_lid from accounts where account_id=$account_id");
$phpgw->db->next_record();
$lid = $phpgw->db->f("account_lid");
if ($n_passwd || $n_passwd_2) {
if ($n_passwd != $n_passwd_2){
$error .= lang("The two passwords are not the same");
}
if (! $n_passwd){
$error .= lang("You must enter a password");
}
}
if ($lid != $n_loginid) {
$phpgw->db->query("select account_lid from accounts where account_lid='$n_loginid'");
if ($phpgw->db->num_rows() != 0) {
$error .= "
" . lang("That loginid has already been taken");
}
}
if (count($new_permissions) == 0){
$error .= "
" . lang("You must add at least 1 permission to this account");
}
if (! $error) {
$phpgw->db->lock(array('accounts','preferences','sessions'));
if ($n_passwd) {
$phpgw->db->query("update accounts set account_pwd='" . md5($n_passwd) . "', "
. "account_lastpwd_change='" . time() . "' where account_lid='" . "$lid'");
$phpgw->db->query("update sessions set session_pwd='" . addslashes($n_passwd)
. "' where session_lid='$lid'");
}
while ($permission = each($new_permissions)) {
if ($phpgw_info["apps"][$permission[0]]["enabled"]) {
$phpgw->accounts->add_app($permission[0]);
}
}
//$phpgw->permissions->add("hr");
if ($new_permissions["anonymous"] && ! $new_permissions["admin"]){
$phpgw->accounts->add_app("anonymous");
}
if (! $n_account_status){
$n_account_status = "L";
}
$cd = 27;
// If they changed there loginid, we need to change the owner in ALL
// tables to reflect on the new one
if ($lid != $n_loginid) {
change_owner("","preferences","preference_owner",$n_loginid,$lid);
change_owner("addressbook","addressbook","ab_owner",$n_loginid,$lid);
change_owner("todo","todo","todo_owner",$n_loginid,$lid);
change_owner("","accounts","account_lid",$n_loginid,$lid);
change_owner("","sessions","session_lid",$n_loginid,$lid);
change_owner("calendar","webcal_entry","cal_create_by",$n_loginid,$lid);
change_owner("calendar","webcal_entry_user","cal_login",$n_loginid,$lid);
if ($lid <> $n_loginid) {
$sep = $phpgw->common->filesystem_separator();
$basedir = $phpgw_info["server"]["files_dir"] . $sep . "users" . $sep;
if (! @rename($basedir . $lid, $basedir . $n_loginid)) {
$cd = 35;
}
}
}
$phpgw->db->query("update accounts set account_firstname='" . addslashes($n_firstname) . "',"
. " account_lastname='" . addslashes($n_lastname) . "', account_permissions='"
. $phpgw->accounts->add_app("",True) . "', account_status='"
. "$n_account_status', account_groups='"
. $phpgw->accounts->groups_array_to_string($n_groups)
. "' where account_lid='$n_loginid'");
$phpgw->db->unlock();
Header("Location: " . $phpgw->link("accounts.php", "cd=$cd"));
exit;
} // if ! $error
} // if $submit
$phpgw->common->phpgw_header();
$phpgw->common->navbar();
$phpgw->db->query("select account_lid from accounts where account_id=$account_id");
$phpgw->db->next_record();
$db_perms = $phpgw->accounts->read_apps($phpgw->db->f("account_lid"));
$phpgw->db->query("select * from accounts where account_id=$account_id");
$phpgw->db->next_record();
$account_status = $phpgw->db->f("account_status");
?>