]>
Commit | Line | Data |
---|---|---|
2cd9af74 MT |
1 | #!/usr/bin/python |
2 | ||
bdaf6b46 | 3 | import datetime |
e96e445b | 4 | import ldap |
2cd9af74 MT |
5 | import tornado.web |
6 | ||
124a8404 | 7 | from . import base |
786e9ca8 MT |
8 | from . import ui_modules |
9 | ||
da24ac0a | 10 | class IndexHandler(base.BaseHandler): |
786e9ca8 MT |
11 | @tornado.web.authenticated |
12 | def get(self): | |
15bb44ee | 13 | self.render("people/index.html") |
786e9ca8 | 14 | |
2cd9af74 | 15 | |
da24ac0a | 16 | class ConferencesHandler(base.BaseHandler): |
30aeccdb MT |
17 | @tornado.web.authenticated |
18 | def get(self): | |
19 | self.render("people/conferences.html", conferences=self.backend.talk.conferences) | |
20 | ||
21 | ||
da24ac0a | 22 | class SubscribeHandler(base.BaseHandler): |
92c4b559 MT |
23 | @tornado.web.authenticated |
24 | def post(self): | |
25 | # Give consent | |
26 | self.current_user.consents_to_promotional_emails = True | |
27 | ||
28 | self.render("people/subscribed.html") | |
29 | ||
30 | ||
da24ac0a | 31 | class UnsubscribeHandler(base.BaseHandler): |
92c4b559 MT |
32 | @tornado.web.authenticated |
33 | def get(self): | |
34 | if self.current_user.consents_to_promotional_emails: | |
35 | return self.render("people/unsubscribe.html") | |
36 | ||
37 | self.render("people/unsubscribed.html") | |
38 | ||
39 | @tornado.web.authenticated | |
40 | def post(self): | |
41 | # Withdraw consent | |
42 | self.current_user.consents_to_promotional_emails = False | |
43 | ||
44 | self.render("people/unsubscribed.html") | |
45 | ||
46 | ||
da24ac0a | 47 | class SIPHandler(base.BaseHandler): |
e0daee8f MT |
48 | @tornado.web.authenticated |
49 | def get(self, uid): | |
50 | account = self.backend.accounts.get_by_uid(uid) | |
51 | if not account: | |
52 | raise tornado.web.HTTPError(404, "Could not find account %s" % uid) | |
53 | ||
54 | # Check for permissions | |
55 | if not account.can_be_managed_by(self.current_user): | |
56 | raise tornado.web.HTTPError(403, "%s cannot manage %s" % (self.current_user, account)) | |
57 | ||
58 | self.render("people/sip.html", account=account) | |
59 | ||
60 | ||
c66f2152 MT |
61 | class AgentModule(ui_modules.UIModule): |
62 | def render(self, account): | |
63 | return self.render_string("people/modules/agent.html", account=account) | |
64 | ||
65 | ||
786e9ca8 MT |
66 | class ChannelsModule(ui_modules.UIModule): |
67 | def render(self, account): | |
1f38be5a MT |
68 | return self.render_string("people/modules/channels.html", |
69 | account=account, channels=account.sip_channels) | |
786e9ca8 MT |
70 | |
71 | ||
b5e2077f | 72 | class PasswordModule(ui_modules.UIModule): |
56894a8b | 73 | def render(self, account=None): |
b5e2077f MT |
74 | return self.render_string("people/modules/password.html", account=account) |
75 | ||
76 | def javascript_files(self): | |
77 | return "js/zxcvbn.js" | |
78 | ||
79 | def embedded_javascript(self): | |
80 | return self.render_string("people/modules/password.js") | |
81 | ||
82 | ||
786e9ca8 MT |
83 | class RegistrationsModule(ui_modules.UIModule): |
84 | def render(self, account): | |
85 | return self.render_string("people/modules/registrations.html", account=account) |