]> git.ipfire.org Git - ipfire.org.git/blob - src/web/people.py
people: Drop old calls page
[ipfire.org.git] / src / web / people.py
1 #!/usr/bin/python
2
3 import datetime
4 import ldap
5 import tornado.web
6
7 from . import base
8 from . import ui_modules
9
10 class IndexHandler(base.BaseHandler):
11 @tornado.web.authenticated
12 def get(self):
13 self.render("people/index.html")
14
15
16 class ConferencesHandler(base.BaseHandler):
17 @tornado.web.authenticated
18 def get(self):
19 self.render("people/conferences.html", conferences=self.backend.talk.conferences)
20
21
22 class SubscribeHandler(base.BaseHandler):
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
31 class UnsubscribeHandler(base.BaseHandler):
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
47 class SIPHandler(base.BaseHandler):
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
61 class AgentModule(ui_modules.UIModule):
62 def render(self, account):
63 return self.render_string("people/modules/agent.html", account=account)
64
65
66 class ChannelsModule(ui_modules.UIModule):
67 def render(self, account):
68 return self.render_string("people/modules/channels.html",
69 account=account, channels=account.sip_channels)
70
71
72 class PasswordModule(ui_modules.UIModule):
73 def render(self, account=None):
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
83 class RegistrationsModule(ui_modules.UIModule):
84 def render(self, account):
85 return self.render_string("people/modules/registrations.html", account=account)