Edit and new account appears to be working correctly now

This commit is contained in:
jengo 2001-02-22 05:52:21 +00:00
parent 9ec5db9093
commit df34d8c2ba
2 changed files with 157 additions and 182 deletions

View File

@ -1,39 +1,38 @@
<?php <?php
/**************************************************************************\ /**************************************************************************\
* phpGroupWare - administration * * phpGroupWare - administration *
* http://www.phpgroupware.org * * http://www.phpgroupware.org *
* -------------------------------------------- * * -------------------------------------------- *
* This program is free software; you can redistribute it and/or modify it * * 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 * * 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 * * Free Software Foundation; either version 2 of the License, or (at your *
* option) any later version. * * option) any later version. *
\**************************************************************************/ \**************************************************************************/
/* $Id$ */ /* $Id$ */
$phpgw_info["flags"] = array( $phpgw_info['flags'] = array(
"noheader" => True, 'noheader' => True,
"nonavbar" => True, 'nonavbar' => True,
"currentapp" => "admin", 'currentapp' => 'admin',
"parent_page" => "accounts.php" 'parent_page' => 'accounts.php'
); );
include("../header.inc.php"); include('../header.inc.php');
include($phpgw_info["server"]["app_inc"]."/accounts_".$phpgw_info["server"]["account_repository"].".inc.php");
// creates the html for the user data // creates the html for the user data
function createPageBody($_account_id,$_userData='',$_errors='') function createPageBody($_account_id,$_userData='',$_errors='')
{ {
global $phpgw,$phpgw_info; global $phpgw, $phpgw_info;
$t = new Template($phpgw->common->get_tpl_dir("admin")); $t = new Template($phpgw->common->get_tpl_dir('admin'));
$t->set_unknowns('remove'); $t->set_unknowns('remove');
$t->set_file(array("form" => "account_form.tpl")); $t->set_file(array('form' => 'account_form.tpl'));
if ($_userData) if ($_userData)
{ {
$userData=$_userData; $userData=$_userData;
reset($userData['n_groups']); reset($userData['account_groups']);
while(list($key, $value) = each($userData['n_groups'])) while (list($key, $value) = each($userData['account_groups']))
{ {
$userGroups[$key]['account_id'] = $value; $userGroups[$key]['account_id'] = $value;
} }
@ -49,71 +48,44 @@
$allGroups = $account->get_list('groups'); $allGroups = $account->get_list('groups');
} }
$t->set_var("form_action",$phpgw->link("editaccount.php", $t->set_var('form_action',$phpgw->link('editaccount.php',
"account_id=$_account_id&old_loginid=".rawurlencode($userData['account_lid']))); "account_id=$_account_id&old_loginid=".rawurlencode($userData['account_lid'])));
// groups list
$groups_select = '<select name="n_groups[]" multiple>';
$accounts = $account->get_list('groups');
for($i=0;$i<count($accounts);$i++) {
//echo $account->get_type($accounts[$i]["account_id"]);
// if ($account->get_type($accounts[$i]["account_id"]) == "g") {
$groups_select .= '<option value="' . $accounts[$i]["account_id"] . '"';
$members = $account->members($accounts[$i]["account_id"]);
if (!$members) { $members = array(); }
while (list($name,$value) = each($members)) {
//echo $value;
if ($value == $accounts[$i]["account_id"]) {
$groups_select .= " selected";
}
}
$groups_select .= ">" . $accounts[$i]["account_lid"] . "</option>\n";
// }
}
$groups_select .= "</select>";
$t->set_var("groups_select",$groups_select);
// end groups list
if ($_errors) if ($_errors)
{ {
$t->set_var("error_messages","<center>" . $phpgw->common->error_list($_errors) . "</center>"); $t->set_var('error_messages','<center>' . $phpgw->common->error_list($_errors) . '</center>');
}
else
{
$t->set_var("error_messages","");
} }
$t->set_var("th_bg",$phpgw_info["theme"]["th_bg"]); $t->set_var('th_bg',$phpgw_info['theme']['th_bg']);
$t->set_var("tr_color1",$phpgw_info["theme"]["row_on"]); $t->set_var('tr_color1',$phpgw_info['theme']['row_on']);
$t->set_var("tr_color2",$phpgw_info["theme"]["row_off"]); $t->set_var('tr_color2',$phpgw_info['theme']['row_off']);
$t->set_var("lang_action",lang("Edit user account")); $t->set_var('lang_action',lang('Edit user account'));
$t->set_var("lang_loginid",lang("LoginID")); $t->set_var('lang_loginid',lang('LoginID'));
$t->set_var("lang_account_active",lang("Account active")); $t->set_var('lang_account_active',lang('Account active'));
$t->set_var("lang_password",lang("Password")); $t->set_var('lang_password',lang('Password'));
$t->set_var("lang_reenter_password",lang("Re-Enter Password")); $t->set_var('lang_reenter_password',lang('Re-Enter Password'));
$t->set_var("lang_lastname",lang("Last Name")); $t->set_var('lang_lastname',lang('Last Name'));
$t->set_var("lang_groups",lang("Groups")); $t->set_var('lang_groups',lang('Groups'));
$t->set_var("lang_firstname",lang("First Name")); $t->set_var('lang_firstname',lang('First Name'));
$t->set_var("lang_button",lang('Save')); $t->set_var('lang_button',lang('Save'));
$t->set_var("n_loginid_value",$userData["account_lid"]); $t->set_var('account_lid',$userData['account_lid']);
$t->set_var("n_passwd_value",$n_passwd); $t->set_var('account_passwd',$account_passwd);
$t->set_var("n_passwd_2_value",$n_passwd_2); $t->set_var('account_passwd_2',$account_passwd_2);
if ($userData["status"]) if ($userData['status'])
{ {
$t->set_var('account_status',' checked'); $t->set_var('account_status',' checked');
} }
$t->set_var("n_firstname_value",$userData["firstname"]); $t->set_var('account_firstname',$userData['firstname']);
$t->set_var("n_lastname_value",$userData["lastname"]); $t->set_var('account_lastname',$userData['lastname']);
$allAccounts; $allAccounts;
$userGroups; $userGroups;
$groups_select = '<select name="n_groups[]" multiple>'; $groups_select = '<select name="account_groups[]" multiple>';
reset($allGroups); reset($allGroups);
while (list($key,$value) = each($allGroups)) while (list($key,$value) = each($allGroups))
{ {
@ -123,27 +95,27 @@
#print "Los1:".$userData["account_id"].$userGroups[$i]['account_id']." : ".$value['account_id']."<br>"; #print "Los1:".$userData["account_id"].$userGroups[$i]['account_id']." : ".$value['account_id']."<br>";
if ($userGroups[$i]['account_id'] == $value['account_id']) if ($userGroups[$i]['account_id'] == $value['account_id'])
{ {
$groups_select .= " selected"; $groups_select .= ' selected';
} }
} }
$groups_select .= ">" . $value['account_lid'] . "</option>\n"; $groups_select .= '>' . $value['account_lid'] . '</option>';
} }
$groups_select .= "</select>"; $groups_select .= '</select>';
$t->set_var("groups_select",$groups_select); $t->set_var('groups_select',$groups_select);
// create list of available app // create list of available app
$i = 0; $i = 0;
$availableApps = $phpgw_info["apps"]; $availableApps = $phpgw_info['apps'];
@asort($availableApps); @asort($availableApps);
@reset($availableApps); @reset($availableApps);
while ($application = each($availableApps)) while ($application = each($availableApps))
{ {
if ($application[1]["enabled"]) if ($application[1]['enabled'])
{ {
$perm_display[$i]['appName'] = $application[0]; $perm_display[$i]['appName'] = $application[0];
$perm_display[$i]['translatedName'] = $application[1]["title"]; $perm_display[$i]['translatedName'] = $application[1]['title'];
$i++; $i++;
} }
} }
@ -156,33 +128,31 @@
for ($i=0;$i<=count($perm_display);$i++) for ($i=0;$i<=count($perm_display);$i++)
{ {
$checked = ""; $checked = '';
if ($new_permissions[$perm_display[$i]['appName']] || $db_perms[$perm_display[$i]['appName']]) if ($_userData['account_permissions'][$perm_display[$i]['appName']] || $db_perms[$perm_display[$i]['appName']])
{ {
$checked = " checked"; $checked = ' checked';
} }
if($perm_display[$i]['translatedName']) if ($perm_display[$i]['translatedName'])
{ {
$part1 = sprintf("<td>%s</td><td><input type=\"checkbox\" name=\"new_permissions[%s]\" value=\"True\" %s></td>", $part1 = sprintf("<td>%s</td><td><input type=\"checkbox\" name=\"account_permissions[%s]\" value=\"True\" %s></td>",
lang($perm_display[$i]['translatedName']), lang($perm_display[$i]['translatedName']),
$perm_display[$i]['appName'], $perm_display[$i]['appName'],
$checked); $checked);
} }
$i++; $i++;
$checked = ""; $checked = "";
if ($new_permissions[$perm_display[$i]['appName']] || $db_perms[$perm_display[$i]['appName']]) if ($_userData['account_permissions'][$perm_display[$i]['appName']] || $db_perms[$perm_display[$i]['appName']])
{ {
$checked = " checked"; $checked = " checked";
} }
if($perm_display[$i]['translatedName']) if($perm_display[$i]['translatedName'])
{ {
$part2 = sprintf("<td>%s</td><td><input type=\"checkbox\" name=\"new_permissions[%s]\" value=\"True\" %s></td>", $part2 = sprintf("<td>%s</td><td><input type=\"checkbox\" name=\"account_permissions[%s]\" value=\"True\" %s></td>",
lang($perm_display[$i]['translatedName']), lang($perm_display[$i]['translatedName']),
$perm_display[$i]['appName'], $perm_display[$i]['appName'],
$checked); $checked);
@ -195,7 +165,7 @@
$appRightsOutput .= sprintf("<tr bgcolor=\"%s\">$part1$part2</tr>\n",$phpgw_info["theme"]["row_on"]); $appRightsOutput .= sprintf("<tr bgcolor=\"%s\">$part1$part2</tr>\n",$phpgw_info["theme"]["row_on"]);
} }
$t->set_var("permissions_list",$appRightsOutput); $t->set_var('permissions_list',$appRightsOutput);
echo $t->finish($t->parse('out','form')); echo $t->finish($t->parse('out','form'));
} }
@ -219,7 +189,7 @@
$apps->account_type = 'u'; $apps->account_type = 'u';
$apps->account_id = $_userData['account_id']; $apps->account_id = $_userData['account_id'];
$apps->account_apps = Array(Array()); $apps->account_apps = Array(Array());
while($app = each($_userData['new_permissions'])) while($app = each($_userData['account_permissions']))
{ {
if($app[1]) if($app[1])
{ {
@ -237,8 +207,8 @@
$account = CreateObject('phpgwapi.accounts'); $account = CreateObject('phpgwapi.accounts');
$allGroups = $account->get_list('groups'); $allGroups = $account->get_list('groups');
reset($_userData['n_groups']); reset($_userData['account_groups']);
while (list($key,$value) = each($_userData['n_groups'])) while (list($key,$value) = each($_userData['account_groups']))
{ {
$newGroups[$value] = $value; $newGroups[$value] = $value;
} }
@ -250,7 +220,7 @@
{ {
#print "$key,". $groupData['account_id'] ."<br>"; #print "$key,". $groupData['account_id'] ."<br>";
#print "$key,". $_userData['n_groups'][1] ."<br>"; #print "$key,". $_userData['account_groups'][1] ."<br>";
if ($newGroups[$groupData['account_id']]) if ($newGroups[$groupData['account_id']])
{ {
@ -272,64 +242,69 @@
$totalerrors = 0; $totalerrors = 0;
if ($phpgw_info["server"]["account_repository"] == "ldap" && ! $allow_long_loginids) if ($phpgw_info['server']['account_repository'] == 'ldap' && ! $allow_long_loginids)
{ {
if (strlen($_userData['account_lid']) > 8) if (strlen($_userData['account_lid']) > 8)
{ {
$error[$totalerrors] = lang("The loginid can not be more then 8 characters"); $error[$totalerrors] = lang('The loginid can not be more then 8 characters');
$totalerrors++; $totalerrors++;
} }
} }
if ($_userData['old_loginid'] != $_userData['account_lid']) if ($_userData['old_loginid'] != $_userData['account_lid'])
{ {
if (account_exsists($_userData['n_loginid'])) if (account_exsists($_userData['account_loginid']))
{ {
$error[$totalerrors] = lang("That loginid has already been taken"); $error[$totalerrors] = lang('That loginid has already been taken');
$totalerrors++; $totalerrors++;
} }
} }
if ($_userData['n_passwd'] || $_userData['n_passwd_2']) if ($_userData['account_passwd'] || $_userData['account_passwd_2'])
{ {
if ($_userData['n_passwd'] != $_userData['n_passwd_2']) if ($_userData['account_passwd'] != $_userData['account_passwd_2'])
{ {
$error[$totalerrors] = lang("The two passwords are not the same"); $error[$totalerrors] = lang('The two passwords are not the same');
$totalerrors++; $totalerrors++;
} }
} }
if (!count($_userData['new_permissions']) || !count($_userData['n_groups'])) if (!count($_userData['account_permissions']) || !count($_userData['account_groups']))
{ {
$error[$totalerrors] = "<br>" . lang("You must add at least 1 permission or group to this account"); $error[$totalerrors] = '<br>' . lang('You must add at least 1 permission or group to this account');
$totalerrors++; $totalerrors++;
} }
if ($totalerrors == 0) if ($totalerrors == 0)
{ {
return FALSE; return FALSE;
} }
else else
{ {
return $error; return $error;
} }
} }
// todo
// not needed if i use the same file for new users too
if (! $account_id) {
Header("Location: " . $phpgw->link("accounts.php"));
}
// todo
// not needed if i use the same file for new users too
if (! $account_id)
{
Header('Location: ' . $phpgw->link('accounts.php'));
}
if ($submit) if ($submit)
{ {
$userData = array( $userData = array(
'account_lid' => $account_lid, 'firstname' => $firstname, 'account_lid' => $account_lid,
'lastname' => $lastname, 'passwd' => $n_passwd, 'firstname' => $account_firstname,
'status' => $account_status, 'old_loginid' => rawurldecode($old_loginid), 'lastname' => $account_lastname,
'account_id' => $account_id, 'passwd_2' => $n_passwd_2, 'account_passwd' => $account_passwd,
'n_groups' => $n_groups, 'new_permissions' => $new_permissions 'status' => $account_status,
'old_loginid' => rawurldecode($old_loginid),
'account_id' => $account_id,
'account_passwd_2' => $account_passwd_2,
'account_groups' => $account_groups,
'account_permissions' => $account_permissions
); );
if (!$errors = userDataInvalid($userData)) if (!$errors = userDataInvalid($userData))
@ -345,9 +320,7 @@
createPageBody($userData['account_id'],$userData,$errors); createPageBody($userData['account_id'],$userData,$errors);
account_close(); $phpgw->common->phpgw_footer();
$phpgw->common->phpgw_footer();
} }
} }
else else
@ -357,56 +330,58 @@
createPageBody($account_id); createPageBody($account_id);
account_close(); $phpgw->common->phpgw_footer();
$phpgw->common->phpgw_footer(); }
} return;
return; //////////////////////////////////////////////////////////////////////////////////////////
//
// the old code
//
/////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////// // The following sets any default preferences needed for new applications..
// // This is smart enough to know if previous preferences were selected, use them.
// the old code
//
/////////////////////////////////////////////////////////////////////////////////////////
// The following sets any default preferences needed for new applications.. $pref = CreateObject('phpgwapi.preferences',intval($account_id));
// This is smart enough to know if previous preferences were selected, use them. $t = $pref->get_preferences();
$pref = CreateObject('phpgwapi.preferences',intval($account_id)); $docommit = False;
$t = $pref->get_preferences(); $after_apps = explode(':',$apps_after);
for ($i=1;$i<count($after_apps) - 1;$i++)
{
if ($after_apps[$i]=='admin')
{
$check = 'common';
}
else
{
$check = $after_apps[$i];
}
$docommit = False; if (!$t["$check"])
$after_apps = explode(':',$apps_after); {
for($i=1;$i<count($after_apps) - 1;$i++) { $phpgw->common->hook_single('add_def_pref', $after_apps[$i]);
if($after_apps[$i]=='admin') { $docommit = True;
$check = 'common'; }
} else { }
$check = $after_apps[$i];
}
if (!$t["$check"]) {
$phpgw->common->hook_single('add_def_pref', $after_apps[$i]);
$docommit = True;
}
}
if ($docommit) { if ($docommit)
$pref->commit(); {
} $pref->commit();
}
// start including other admin tools // start including other admin tools
while($app = each($apps_after)) while ($app = each($apps_after))
{ {
$phpgw->common->hook_single('update_user_data', $app[0]); $phpgw->common->hook_single('update_user_data', $app[0]);
} }
$includedSomething = False; $includedSomething = False;
// start inlcuding other admin tools // start inlcuding other admin tools
while($app = each($apps_after)) while($app = each($apps_after))
{ {
// check if we have something included, when not ne need to set $phpgw->common->hook_single('show_user_data', $app[0]);
// {gui_hooks} to "" }
if ($phpgw->common->hook_single('show_user_data', $app[0])) $includedSomething=True;
}
if (!$includedSomething) $t->set_var('gui_hooks','');
?> ?>

View File

@ -15,7 +15,7 @@
$phpgw_info["flags"] = array("currentapp" => "admin", "noheader" => True, "nonavbar" => True, $phpgw_info["flags"] = array("currentapp" => "admin", "noheader" => True, "nonavbar" => True,
"parent_page" => "accounts.php"); "parent_page" => "accounts.php");
include("../header.inc.php"); include("../header.inc.php");
include($phpgw_info["server"]["app_inc"]."/accounts_".$phpgw_info["server"]["account_repository"].".inc.php"); #include($phpgw_info["server"]["app_inc"]."/accounts_".$phpgw_info["server"]["account_repository"].".inc.php");
function is_odd($n) function is_odd($n)
{ {
@ -273,6 +273,6 @@
$phpgw->template->set_var("lang_button",Lang("Add")); $phpgw->template->set_var("lang_button",Lang("Add"));
echo $phpgw->template->finish($phpgw->template->parse("out","form")); echo $phpgw->template->finish($phpgw->template->parse("out","form"));
account_close(); #account_close();
$phpgw->common->phpgw_footer(); $phpgw->common->phpgw_footer();
?> ?>