enabled = property(lambda s: s.data.enabled, set_enabled)
+ # Permissions
+
+ def has_perm(self, user):
+ # Anonymous users have no permissions
+ if not user:
+ return False
+
+ # Admins have all permissions
+ return user.is_admin()
+
@property
def arch(self):
"""
@tornado.web.authenticated
def post(self):
- if not self.current_user.has_perm("maintain_builders"):
+ # Check permissions
+ if not builder.has_perm(self.current_user):
raise tornado.web.HTTPError(403)
name = self.get_argument("name")
if not builder:
raise tornado.web.HTTPError(404, "Builder not found: %s" % hostname)
- # Check for sufficient right to edit things.
- if not self.current_user.has_perm("builders"):
+ # Check permissions
+ if not builder.has_perm(self.current_user):
raise tornado.web.HTTPError(403)
with self.db.transaction():
if not builder:
raise tornado.web.HTTPError(404, "Builder not found: %s" % name)
- # Check for sufficient right to delete this builder.
- if not self.current_user.has_perm("builders"):
+ # Check permissions
+ if not builder.has_perm(self.current_user):
raise tornado.web.HTTPError(403)
confirmed = self.get_argument("confirmed", None)