<?php /**************************************************************************\ * phpGroupWare - administration * * http://www.phpgroupware.org * * -------------------------------------------- * * This program is free software; you can redistribute it and/or modify it * * under the terms of the GNU General Public License as published by the * * Free Software Foundation; either version 2 of the License, or (at your * * option) any later version. * \**************************************************************************/ /* $Id$ */ $phpgw_info["flags"] = array("noheader" => 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 (! $con) 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 loginid from accounts where con=$con"); $phpgw->db->next_record(); $lid = $phpgw->db->f("loginid"); 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 loginid from accounts where loginid='$n_loginid'"); if ($phpgw->db->num_rows() != 0) { $error .= "<br>" . lang("That loginid has already been taken"); } } if (count($new_permissions) == 0){ $error .= "<br>" . 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 passwd='" . md5($n_passwd) . "', " . "lastpasswd_change='" . time() . "' where loginid='" . "$lid'"); $phpgw->db->query("update sessions set passwd='" . addslashes($n_passwd) . "' where loginid='$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","owner",$n_loginid,$lid); change_owner("addressbook","addressbook","owner",$n_loginid,$lid); change_owner("todo","todo","owner",$n_loginid,$lid); change_owner("","accounts","loginid",$n_loginid,$lid); change_owner("","sessions","loginid",$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"]["server_root"] . $sep . "filemanager" . $sep . "users" . $sep; if (! @rename($basedir . $lid, $basedir . $n_loginid)) { $cd = 35; } } } $phpgw->db->query("update accounts set firstname='" . addslashes($n_firstname) . "'," . " lastname='" . addslashes($n_lastname) . "', permissions='" . $phpgw->accounts->add_app("",True) . "', status='" . "$n_account_status', groups='" . $phpgw->accounts->array_to_string("none",$n_groups) . "' where loginid='$n_loginid'"); $phpgw->db->unlock(); Header("Location: " . $phpgw->link("accounts.php", "cd=$cd")); exit; } // if ! $error } // if $submit $phpgw->common->header(); $phpgw->common->navbar(); $phpgw->db->query("select loginid from accounts where con=$con"); $phpgw->db->next_record(); $db_perms = $phpgw->accounts->read_apps($phpgw->db->f("loginid")); $phpgw->db->query("select * from accounts where con=$con"); $phpgw->db->next_record(); $account_status = $phpgw->db->f("status"); ?> <form method="POST" action="<?php echo $phpgw->link("editaccount.php"); ?>"> <input type="hidden" name="con" value="<? echo $con; ?>"> <?php if ($error) { echo "<center>" . lang("Error") . ":$error</center>"; } ?> <center> <table border=0 width=65%> <tr> <td><?php echo lang("LoginID"); ?></td> <td><input name="n_loginid" value="<? echo $phpgw->db->f("loginid"); ?>"></td> </tr> <tr> <td><?php echo lang("First Name"); ?></td> <td><input name="n_firstname" value="<?echo $phpgw->db->f("firstname"); ?>"></td> </tr> <tr> <td><?php echo lang("Last Name"); ?></td> <td><input name="n_lastname" value="<? echo $phpgw->db->f("lastname"); ?>"></td> </tr> <tr> <td><?php echo lang("Groups"); ?></td> <td><select name="n_groups[]" multiple size="5"> <?php $user_groups = $phpgw->accounts->read_group_names($phpgw->db->f("loginid")); $phpgw->db->query("select * from groups"); while ($phpgw->db->next_record()) { echo "<option value=\"" . $phpgw->db->f("group_id") . "\""; for ($i=0; $i<count($user_groups); $i++) { if ($user_groups[$i][0] == $phpgw->db->f("group_id")){ echo " selected"; } } echo ">" . $phpgw->db->f("group_name") . "</option>\n"; } ?> </select> </tr> <?php $i = 0; while ($permission = each($phpgw_info["apps"])) { if ($permission[1]["enabled"]) { $perm_display[$i][0] = $permission[0]; $perm_display[$i][1] = $permission[1]["title"]; $i++; } } for ($i=0;$i<200;) { // The $i<200 is only used for a brake if (! $perm_display[$i][1]) break; echo '<tr><td>' . lang($perm_display[$i][1]) . '</td>' . '<td><input type="checkbox" name="new_permissions[' . $perm_display[$i][0] . ']" value="True"'; if ($new_permissions[$perm_display[$i][0]] || $db_perms[$perm_display[$i][0]]) { echo " checked"; } echo "></td>"; $i++; if (! $perm_display[$i][1]) break; echo '<td>' . lang($perm_display[$i][1]) . '</td>' . '<td><input type="checkbox" name="new_permissions[' . $perm_display[$i][0] . ']" value="True"'; if ($new_permissions[$perm_display[$i][0]] || $db_perms[$perm_display[$i][0]]) { echo " checked"; } echo "></td></tr>"; $i++; } /* echo "<tr><td>" . lang("Anonymous user") . "</td><td><input type=\"" . "checkbox\" name=\"new_permissions[anonymous]\" value=\"True\""; if ($db_perms["anonymous"] || $new_permissions[anonymous]) echo " checked"; echo "></td>"; echo "<td>" . lang("Manager") . "</td><td><input type=\"" . "checkbox\" name=\"new_permissions[manager]\" value=\"True\""; if ($db_perms["manager"] || $new_permissions[manager]) echo " checked"; echo "></td></tr>"; */ ?> <tr> <td><?php echo lang("Account active"); ?></td> <td><input type="checkbox" name="n_account_status" value="A" <?php if ($account_status == "A") { echo " checked"; } ?>> </td> </tr> <tr> <td><?php echo lang("New password [ Leave blank for no change ]"); ?></td> <td><input type=password name="n_passwd"></td> </tr> <tr> <td><?php echo lang("Re-enter password"); ?></td> <td><input type=password name="n_passwd_2"></td> </tr> <tr> <td colspan=2><input type="submit" name="submit" value="<?php echo lang("submit"); ?>"></td> </tr> </table> </center> </form> <?php include($phpgw_info["server"]["api_dir"] . "/footer.inc.php"); ?>