X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/timetracker.git/blobdiff_plain/db9bfb69eeab1f5c75f65373c370990445014305..ee49ee74b2a7d3c6daaa2d4bc6397b0c89e3099b:/mobile/user_delete.php diff --git a/mobile/user_delete.php b/mobile/user_delete.php new file mode 100644 index 00000000..aa25a5b3 --- /dev/null +++ b/mobile/user_delete.php @@ -0,0 +1,99 @@ +getParameter('id'); + +// We need user name and login to display. +$user_details = ttUserHelper::getUserDetails($user_id); + +// Security checks. +$ok_to_go = $user->canManageTeam(); // Are we authorized for user deletes? +if ($ok_to_go) $ok_to_go = $ok_to_go && $user_details; // Are we deleting a real user? +if ($ok_to_go) $ok_to_go = $ok_to_go && ($user->team_id == $user_details['team_id']); // User belongs to our team? +if ($ok_to_go && $user->isCoManager() && (ROLE_COMANAGER == $user_details['role'])) + $ok_to_go = ($user->id == $user_details['id']); // Comanager is not allowed to delete other comanagers. +if ($ok_to_go && $user->isCoManager() && (ROLE_MANAGER == $user_details['role'])) + $ok_to_go = false; // Comanager is not allowed to delete a manager. + +if (!$ok_to_go) + die ($i18n->getKey('error.sys')); +else + $smarty->assign('user_to_delete', $user_details['name']." (".$user_details['login'].")"); + +// Create confirmation form. +$form = new Form('userDeleteForm'); +$form->addInput(array('type'=>'hidden','name'=>'id','value'=>$user_id)); +$form->addInput(array('type'=>'submit','name'=>'btn_delete','value'=>$i18n->getKey('label.delete'))); +$form->addInput(array('type'=>'submit','name'=>'btn_cancel','value'=>$i18n->getKey('button.cancel'))); + +if ($request->isPost()) { + if ($request->getParameter('btn_delete')) { + if (ttUserHelper::markDeleted($user_id)) { + // If we deleted the "on behalf" user reset its info in session. + if ($user_id == $user->behalf_id) { + unset($_SESSION['behalf_id']); + unset($_SESSION['behalf_name']); + } + // If we deleted our own account, do housekeeping and logout. + if ($user->id == $user_id) { + // Remove tt_login cookie that stores login name. + unset($_COOKIE['tt_login']); + setcookie('tt_login', NULL, -1); + + $auth->doLogout(); + header('Location: login.php'); + } else { + header('Location: users.php'); + } + exit(); + } else { + $err->add($i18n->getKey('error.db')); + } + } + if ($request->getParameter('btn_cancel')) { + header('Location: users.php'); + exit(); + } +} // isPost + +$smarty->assign('forms', array($form->getName()=>$form->toArray())); +$smarty->assign('title', $i18n->getKey('title.delete_user')); +$smarty->assign('content_page_name', 'mobile/user_delete.tpl'); +$smarty->display('mobile/index.tpl');