src/templates/people/call.html \
src/templates/people/calls.html \
src/templates/people/index.html \
- src/templates/people/passwd.html \
src/templates/people/sip.html \
src/templates/people/subscribed.html \
src/templates/people/unsubscribe.html \
templates_users_DATA = \
src/templates/users/index.html \
+ src/templates/users/passwd.html \
src/templates/users/show.html
templates_usersdir = $(templatesdir)/users
(r"/users", users.IndexHandler),
(r"/users/([a-z_][a-z0-9_-]{0,31})", users.ShowHandler),
(r"/users/([a-z_][a-z0-9_-]{0,31})\.jpg", users.AvatarHandler),
+ (r"/users/([a-z_][a-z0-9_-]{0,31})/passwd", users.PasswdHandler),
# Static Pages
(r"/about", StaticHandler, { "template" : "about.html" }),
(r"/users/([a-z_][a-z0-9_-]{0,31})/calls/([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})", people.CallHandler),
(r"/users/([a-z_][a-z0-9_-]{0,31})/calls(?:/(\d{4}-\d{2}-\d{2}))?", people.CallsHandler),
(r"/users/([a-z_][a-z0-9_-]{0,31})/edit", people.UserEditHandler),
- (r"/users/([a-z_][a-z0-9_-]{0,31})/passwd", people.UserPasswdHandler),
(r"/users/([a-z_][a-z0-9_-]{0,31})/sip", people.SIPHandler),
# Promotional Consent Stuff
self.redirect("/users/%s" % account.uid)
-class UserPasswdHandler(base.BaseHandler):
- @tornado.web.authenticated
- def get(self, uid):
- account = self.backend.accounts.get_by_uid(uid)
- if not account:
- raise tornado.web.HTTPError(404, "Could not find account %s" % uid)
-
- # Check for permissions
- if not account.can_be_managed_by(self.current_user):
- raise tornado.web.HTTPError(403, "%s cannot manage %s" % (self.current_user, account))
-
- self.render("people/passwd.html", account=account)
-
- @tornado.web.authenticated
- def post(self, uid):
- account = self.backend.accounts.get_by_uid(uid)
- if not account:
- raise tornado.web.HTTPError(404, "Could not find account %s" % uid)
-
- # Check for permissions
- if not account.can_be_managed_by(self.current_user):
- raise tornado.web.HTTPError(403, "%s cannot manage %s" % (self.current_user, account))
-
- # Get current password
- password = self.get_argument("password")
-
- # Get new password
- password1 = self.get_argument("password1")
- password2 = self.get_argument("password2")
-
- # Passwords must match
- if not password1 == password2:
- raise tornado.web.HTTPError(400, "Passwords do not match")
-
- # XXX Check password complexity
-
- # Check if old password matches
- if not account.check_password(password):
- raise tornado.web.HTTPError(403, "Incorrect password for %s" % account)
-
- # Save new password
- account.passwd(password1)
-
- # Redirect back to user's page
- self.redirect("/users/%s" % account.uid)
-
-
class AgentModule(ui_modules.UIModule):
def render(self, account):
return self.render_string("people/modules/agent.html", account=account)
return f.getvalue()
+class PasswdHandler(base.BaseHandler):
+ @tornado.web.authenticated
+ def get(self, uid):
+ account = self.backend.accounts.get_by_uid(uid)
+ if not account:
+ raise tornado.web.HTTPError(404, "Could not find account %s" % uid)
+
+ # Check for permissions
+ if not account.can_be_managed_by(self.current_user):
+ raise tornado.web.HTTPError(403, "%s cannot manage %s" % (self.current_user, account))
+
+ self.render("users/passwd.html", account=account)
+
+ @tornado.web.authenticated
+ def post(self, uid):
+ account = self.backend.accounts.get_by_uid(uid)
+ if not account:
+ raise tornado.web.HTTPError(404, "Could not find account %s" % uid)
+
+ # Check for permissions
+ if not account.can_be_managed_by(self.current_user):
+ raise tornado.web.HTTPError(403, "%s cannot manage %s" % (self.current_user, account))
+
+ # Get current password
+ password = self.get_argument("password")
+
+ # Get new password
+ password1 = self.get_argument("password1")
+ password2 = self.get_argument("password2")
+
+ # Passwords must match
+ if not password1 == password2:
+ raise tornado.web.HTTPError(400, "Passwords do not match")
+
+ # XXX Check password complexity
+
+ # Check if old password matches
+ if not account.check_password(password):
+ raise tornado.web.HTTPError(403, "Incorrect password for %s" % account)
+
+ # Save new password
+ account.passwd(password1)
+
+ # Redirect back to user's page
+ self.redirect("/users/%s" % account.uid)
+
+
class GroupIndexHandler(base.BaseHandler):
@tornado.web.authenticated
def get(self):