diff options
Diffstat (limited to 'modules-available/session/page.inc.php')
-rw-r--r-- | modules-available/session/page.inc.php | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/modules-available/session/page.inc.php b/modules-available/session/page.inc.php index 0a6eac77..5f5e5d28 100644 --- a/modules-available/session/page.inc.php +++ b/modules-available/session/page.inc.php @@ -12,18 +12,18 @@ class Page_Session extends Page if (User::isLoggedIn()) // and then just redirect Util::redirect('?do=main'); // Else, try to log in - if (User::login(Request::post('user'), Request::post('pass'))) + if (User::login(Request::post('user'), + Request::post('pass'), + Request::post('fixedip', false, 'bool'))) { Util::redirect('?do=main'); + } // Login credentials wrong - delay and show error message sleep(1); Message::addError('loginfail'); - } - if ($action === 'logout') { + } elseif ($action === 'logout') { // Log user out (or do nothing if not logged in) User::logout(); - Util::redirect('?do=main'); - } - if ($action === 'changepw') { + } elseif ($action === 'changepw') { if (!User::isLoggedIn()) { Util::redirect('?do=main'); } @@ -47,19 +47,38 @@ class Page_Session extends Page Message::addError('adduser.password-mismatch'); Util::redirect('?do=session'); } + if (Request::post('kill-other-sessions', false, 'bool')) { + Session::deleteAllButCurrent(); + } if (User::updatePassword($new)) { Message::addSuccess('password-changed'); } else { Message::addWarning('password-unchanged'); } Util::redirect('?do=session'); + } else { + // No action, change title to session list + Render::setTitle(Dictionary::translate('page-title-session-list')); } } protected function doRender() { if (User::isLoggedIn()) { - Render::addTemplate('change-password'); + $res = Database::simpleQuery("SELECT u.login, s.userid, s.dateline, s.lastip, s.fixedip + FROM session s + INNER JOIN user u USING (userid) + ORDER BY dateline DESC"); + $sessions = []; + $perm = User::hasPermission('.adduser.user.*'); + foreach ($res as $row) { + if ($perm || $row['userid'] == User::getId()) { + $row['dateline_s'] = Util::prettyTime($row['dateline']); + $sessions[] = $row; + } + } + Render::addTemplate('change-password', ['sessions' => $sessions, + 'link' => User::hasPermission('.adduser.user.edit')]); } else { Render::addTemplate('page-login'); } |