diff options
author | Simon Rettberg | 2015-03-03 19:01:30 +0100 |
---|---|---|
committer | Simon Rettberg | 2015-03-03 19:01:30 +0100 |
commit | c90c7bfb5d72d327e6fe8fb3a85d852ec1ee94a4 (patch) | |
tree | 3d6ed553f0308dbd315b6e43785b55e429ec037b /modules | |
parent | Second Commit (diff) | |
download | bwlp-webadmin-c90c7bfb5d72d327e6fe8fb3a85d852ec1ee94a4.tar.gz bwlp-webadmin-c90c7bfb5d72d327e6fe8fb3a85d852ec1ee94a4.tar.xz bwlp-webadmin-c90c7bfb5d72d327e6fe8fb3a85d852ec1ee94a4.zip |
Third Commit
Diffstat (limited to 'modules')
-rw-r--r-- | modules/logout.inc.php | 8 | ||||
-rw-r--r-- | modules/sharemode.inc.php | 51 |
2 files changed, 59 insertions, 0 deletions
diff --git a/modules/logout.inc.php b/modules/logout.inc.php index 90cd225..1f22fb4 100644 --- a/modules/logout.inc.php +++ b/modules/logout.inc.php @@ -3,6 +3,14 @@ class Page_Logout extends Page { + public function doPreprocess() + { + if (Request::any('noredirect') === false) { + User::load(); + User::logout(); + } + } + public function doRender() { Render::addTemplate('logout/_page'); diff --git a/modules/sharemode.inc.php b/modules/sharemode.inc.php new file mode 100644 index 0000000..ed7c4a4 --- /dev/null +++ b/modules/sharemode.inc.php @@ -0,0 +1,51 @@ +<?php + +class Page_ShareMode extends Page +{ + + public function doPreprocess() + { + if (!User::load()) { + Message::addError('Sie sind nicht angemeldet'); + Util::redirect(CONFIG_PREFIX); + } + // Äktschn + if (Request::post('action') === 'deploy') { + User::deploy(false); + Message::addSuccess('Sie haben sich erfolgreich für die Teilnahme am VM-Austausch freigeschaltet'); + Util::redirect('?do=Main'); + } else if (Request::post('action') === 'remove') { + User::deploy(true); + if (Request::post('delvms', 'off') !== 'off') { + $del = Image::deleteOwnedBy(User::getId()); + if ($del > 1) + Message::addSuccess('Es wurden {{0}} VMs gelöscht', $del); + if ($del == 1) + Message::addSuccess('Es wurde {{0}} VM gelöscht', $del); + } + Message::addSuccess('Ihre persönlichen Daten wurden deprovisioniert'); + Util::redirect('?do=Main'); + } + } + + public function doRender() + { + if (User::isLocalOnly()) { + // Local anyways, no way to de-provision user data + Render::addTemplate('sharemode/testacc'); + } elseif (User::isShibbolethAuth()) { + // Shibboleth user + if (User::isAnonymous()) { + // Did not deploy user data to DB, so show deploy form + $data = User::getData(); + $data['organization'] = User::getOrganizationName(); + Render::addTemplate('sharemode/deploy', $data); + } else { + // User is known in DB, show delete form + Render::addTemplate('sharemode/remove'); + } + } + } + +} + |