X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=admin_group_edit.php;h=ee639d0425685e0c833258e69dbe5b17bc4ea3c1;hb=HEAD;hp=0efca4f6fb879cee6f8a6c637d5b678131e427cc;hpb=8aef74b216afaf7d9a19e069a68807b54e71267e;p=timetracker.git diff --git a/admin_group_edit.php b/admin_group_edit.php index 0efca4f6..ee639d04 100644 --- a/admin_group_edit.php +++ b/admin_group_edit.php @@ -29,19 +29,26 @@ require_once('initialize.php'); import('form.Form'); import('ttUserHelper'); -import('ttTeamHelper'); +import('ttAdmin'); -// Access check. +// Access checks. if (!ttAccessAllowed('administer_site')) { header('Location: access_denied.php'); exit(); } +$group_id = (int)$request->getParameter('id'); +$group_name = ttAdmin::getGroupName($group_id); +if (!($group_id && $group_name)) { + header('Location: access_denied.php'); + exit(); +} +// End of access checks. -$group_id = $request->getParameter('id'); -$team_details = ttTeamHelper::getTeamDetails($group_id); +$org_details = ttAdmin::getOrgDetails($group_id); +if (!$org_details) $err->add($i18n->get('error.db')); if ($request->isPost()) { - $cl_team_name = trim($request->getParameter('team_name')); + $cl_group_name = trim($request->getParameter('group_name')); $cl_manager_name = trim($request->getParameter('manager_name')); $cl_manager_login = trim($request->getParameter('manager_login')); if (!$auth->isPasswordExternal()) { @@ -50,17 +57,17 @@ if ($request->isPost()) { } $cl_manager_email = trim($request->getParameter('manager_email')); } else { - $cl_team_name = $team_details['team_name']; - $cl_manager_name = $team_details['manager_name']; - $cl_manager_login = $team_details['manager_login']; + $cl_group_name = $org_details['group_name']; + $cl_manager_name = $org_details['manager_name']; + $cl_manager_login = $org_details['manager_login']; if (!$auth->isPasswordExternal()) { $cl_password1 = $cl_password2 = ''; } - $cl_manager_email = $team_details['manager_email']; + $cl_manager_email = $org_details['manager_email']; } -$form = new Form('teamForm'); -$form->addInput(array('type'=>'text','maxlength'=>'80','name'=>'team_name','value'=>$cl_team_name)); +$form = new Form('groupForm'); +$form->addInput(array('type'=>'text','maxlength'=>'80','name'=>'group_name','value'=>$cl_group_name)); $form->addInput(array('type'=>'text','maxlength'=>'100','name'=>'manager_name','value'=>$cl_manager_name)); $form->addInput(array('type'=>'text','maxlength'=>'100','name'=>'manager_login','value'=>$cl_manager_login)); if (!$auth->isPasswordExternal()) { @@ -74,24 +81,46 @@ $form->addInput(array('type'=>'submit','name'=>'btn_cancel','value'=>$i18n->get( if ($request->isPost()) { if ($request->getParameter('btn_save')) { - // Create fields array for ttAdmin instance. - $fields = array( - 'old_group_name' => $team_details['team_name'], - 'new_group_name' => $cl_team_name, - 'user_id' => $team_details['manager_id'], - 'user_name' => $cl_manager_name, - 'old_login' => $team_details['manager_login'], - 'new_login' => $cl_manager_login, - 'password1' => $cl_password1, - 'password2' => $cl_password2, - 'email' => $cl_manager_email); - import('ttAdmin'); - $admin = new ttAdmin($err); - $result = $admin->updateGroup($group_id, $fields); - if ($result) { - header('Location: admin_groups.php'); - exit(); + // Validate user input. + if (!ttValidString($cl_group_name)) + $err->add($i18n->get('error.field'), $i18n->get('label.group_name')); + if (!ttValidString($cl_manager_name)) + $err->add($i18n->get('error.field'), $i18n->get('label.manager_name')); + if (!ttValidString($cl_manager_login)) + $err->add($i18n->get('error.field'), $i18n->get('label.manager_login')); + // If we change login, it must be unique. + if ($cl_manager_login != $org_details['manager_login']) { + if (ttUserHelper::getUserByLogin($cl_manager_login)) { + $err->add($i18n->get('error.user_exists')); + } + } + if (!$auth->isPasswordExternal() && ($cl_password1 || $cl_password2)) { + if (!ttValidString($cl_password1)) + $err->add($i18n->get('error.field'), $i18n->get('label.password')); + if (!ttValidString($cl_password2)) + $err->add($i18n->get('error.field'), $i18n->get('label.confirm_password')); + if ($cl_password1 !== $cl_password2) + $err->add($i18n->get('error.not_equal'), $i18n->get('label.password'), $i18n->get('label.confirm_password')); + } + if (!ttValidEmail($cl_manager_email, true)) + $err->add($i18n->get('error.field'), $i18n->get('label.email')); + + if ($err->no()) { + if (ttAdmin::updateGroup(array('group_id' => $group_id, + 'old_group_name' => $org_details['group_name'], + 'new_group_name' => $cl_group_name, + 'user_id' => $org_details['manager_id'], + 'user_name' => $cl_manager_name, + 'old_login' => $org_details['manager_login'], + 'new_login' => $cl_manager_login, + 'password1' => $cl_password1, + 'password2' => $cl_password2, + 'email' => $cl_manager_email))) { + header('Location: admin_groups.php'); + exit(); + } else + $err->add($i18n->get('error.db')); } } @@ -103,7 +132,7 @@ if ($request->isPost()) { $smarty->assign('auth_external', $auth->isPasswordExternal()); $smarty->assign('forms', array($form->getName()=>$form->toArray())); -$smarty->assign('onload', 'onLoad="document.teamForm.manager_name.focus()"'); +$smarty->assign('onload', 'onLoad="document.groupForm.manager_name.focus()"'); $smarty->assign('title', $i18n->get('title.edit_group')); -$smarty->assign('content_page_name', 'admin_team_edit.tpl'); +$smarty->assign('content_page_name', 'admin_group_edit.tpl'); $smarty->display('index.tpl');