summaryrefslogtreecommitdiffstats
path: root/modules/sharemode.inc.php
blob: 22e168316a5decf729f4aaa14017cc0263de749f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?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', array('suite' => CONFIG_SUITE));
		} 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();
				$data['suite'] = CONFIG_SUITE;
				Render::addTemplate('sharemode/deploy', $data);
			} else {
				// User is known in DB, show delete form
				Render::addTemplate('sharemode/remove');
			}
		}
	}

}