X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=group_delete.php;h=db24a44818cf368eb881ff59bcac10097f04eb4a;hb=45a530c33fdd7ab2ccd1905c24a371c94e17eac5;hp=65875fad1f0726306ac711ca5fcac062beb3df15;hpb=83987222fbafb8d6dbbbd9578ed2f949f65004d3;p=timetracker.git diff --git a/group_delete.php b/group_delete.php index 65875fad..db24a448 100644 --- a/group_delete.php +++ b/group_delete.php @@ -28,20 +28,21 @@ require_once('initialize.php'); import('form.Form'); +import('ttGroupHelper'); // Access checks. if (!ttAccessAllowed('delete_group')) { - header('Location: access_denied.php'); + header('Location: access_denied.php'); // No rights. + exit(); +} +if (!$user->isGroupValid($request->getParameter('id'))) { + header('Location: access_denied.php'); // Wrong group id. exit(); } // End of access checks. -// TODO: refactor this... and the template. $group_id = (int)$request->getParameter('id'); - -$admin = new ttAdmin(); -$group_details = $admin->getGroupDetails($group_id); -$group_name = $group_details['group_name']; +$group_name = ttGroupHelper::getGroupName($group_id); $form = new Form('groupForm'); $form->addInput(array('type'=>'hidden','name'=>'id','value'=>$group_id)); @@ -50,22 +51,38 @@ $form->addInput(array('type'=>'submit','name'=>'btn_cancel','value'=>$i18n->get( if ($request->isPost()) { if ($request->getParameter('btn_delete')) { - $result = $admin->markGroupDeleted($group_id); - if ($result) { - header('Location: admin_groups.php'); - exit(); + $markedDeleted = ttGroupHelper::markGroupDeleted($group_id); + if ($markedDeleted) { + // TODO: conditional redirects don't look nice. Any better ideas? + if ($group_id == $user->group_id) { + // We marked deleted our own group. Logout and redirect to login page. + $auth->doLogout(); + session_unset(); + header('Location: login.php'); + exit(); + } else { + // We marked deleted a subgroup. Redirect to groups.pgp. + header('Location: groups.php'); + exit(); + } } else $err->add($i18n->get('error.db')); } if ($request->getParameter('btn_cancel')) { - header('Location: admin_groups.php'); - exit(); + // TODO: conditional redirects don't look nice. Any better ideas? + if ($group_id == $user->group_id) { + header('Location: group_edit.php'); + exit(); + } else { + header('Location: groups.php'); + exit(); + } } } // isPost $smarty->assign('group_to_delete', $group_name); $smarty->assign('forms', array($form->getName()=>$form->toArray())); $smarty->assign('title', $i18n->get('title.delete_group')); -$smarty->assign('content_page_name', 'admin_group_delete.tpl'); +$smarty->assign('content_page_name', 'group_delete.tpl'); $smarty->display('index.tpl');