from . import handlers_base as base
+from . import auth
from . import ui_modules
-class IndexHandler(base.BaseHandler):
+class IndexHandler(auth.CacheMixin, base.BaseHandler):
def get(self):
posts = self.backend.blog.get_newest(limit=3)
# Allow this to be cached for 5 minutes
- self.set_expires(300)
+ if not self.current_user:
+ self.set_expires(300)
self.render("blog/index.html", posts=posts)
-class AuthorHandler(base.BaseHandler):
+class AuthorHandler(auth.CacheMixin, base.BaseHandler):
def get(self, uid):
author = self.accounts.get_by_uid(uid)
if not author:
raise tornado.web.HTTPError(404, "User has no posts")
# Allow this to be cached for 10 minutes
- self.set_expires(600)
+ if not self.current_user:
+ self.set_expires(600)
self.render("blog/author.html", author=author, posts=posts)
self.finish(feed)
-class PostHandler(base.BaseHandler):
+class PostHandler(auth.CacheMixin, base.BaseHandler):
def get(self, slug):
post = self.backend.blog.get_by_slug(slug, published=not self.current_user)
if not post:
self.render("blog/post.html", post=post)
-class PublishHandler(base.BaseHandler):
+class PublishHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def post(self, slug):
post = self.backend.blog.get_by_slug(slug, published=not self.current_user)
self.redirect("/post/%s" % post.slug)
-class DraftsHandler(base.BaseHandler):
+class DraftsHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self):
drafts = self.backend.blog.get_drafts(author=self.current_user)
self.render("blog/drafts.html", drafts=drafts)
-class SearchHandler(base.BaseHandler):
+class SearchHandler(auth.CacheMixin, base.BaseHandler):
def get(self):
q = self.get_argument("q")
self.render("blog/search-results.html", q=q, posts=posts)
-class TagHandler(base.BaseHandler):
+class TagHandler(auth.CacheMixin, base.BaseHandler):
def get(self, tag):
posts = self.backend.blog.get_by_tag(tag)
if not posts:
self.render("blog/tag.html", posts=list(posts), tag=tag)
-class YearHandler(base.BaseHandler):
+class YearHandler(auth.CacheMixin, base.BaseHandler):
def get(self, year):
posts = self.backend.blog.get_by_year(year)
if not posts:
self.render("blog/year.html", posts=posts, year=year)
-class ComposeHandler(base.BaseHandler):
+class ComposeHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self):
self.render("blog/compose.html", post=None)
self.redirect("/drafts")
-class EditHandler(base.BaseHandler):
+class EditHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self, slug):
post = self.backend.blog.get_by_slug(slug, published=False)
import sshpubkeys
import tornado.web
+from . import auth
from . import handlers_base as base
from . import ui_modules
-class IndexHandler(base.BaseHandler):
+class IndexHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self):
self.render("people/index.html")
class AvatarHandler(base.BaseHandler):
- always_cache = True
-
def get(self, uid):
# Get the desired size of the avatar file
size = self.get_argument("size", 0)
self.finish(avatar)
-class CallsHandler(base.BaseHandler):
+class CallsHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self, uid, date=None):
account = self.backend.accounts.get_by_uid(uid)
self.render("people/calls.html", account=account, date=date)
-class CallHandler(base.BaseHandler):
+class CallHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self, uid, uuid):
account = self.backend.accounts.get_by_uid(uid)
self.render("people/call.html", account=account, call=call)
-class ConferencesHandler(base.BaseHandler):
+class ConferencesHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self):
self.render("people/conferences.html", conferences=self.backend.talk.conferences)
-class SearchHandler(base.BaseHandler):
+class SearchHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self):
q = self.get_argument("q")
self.render("people/search.html", q=q, accounts=accounts)
-class SSHKeysIndexHandler(base.BaseHandler):
+class SSHKeysIndexHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self, uid):
account = self.backend.accounts.get_by_uid(uid)
self.render("people/ssh-keys/index.html", account=account)
-class SSHKeysDownloadHandler(base.BaseHandler):
+class SSHKeysDownloadHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self, uid, hash_sha256):
account = self.backend.accounts.get_by_uid(uid)
self.finish(key.keydata)
-class SSHKeysUploadHandler(base.BaseHandler):
+class SSHKeysUploadHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self, uid):
account = self.backend.accounts.get_by_uid(uid)
self.redirect("/users/%s/ssh-keys" % account.uid)
-class SSHKeysDeleteHandler(base.BaseHandler):
+class SSHKeysDeleteHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self, uid, hash_sha256):
account = self.backend.accounts.get_by_uid(uid)
self.redirect("/users/%s/ssh-keys" % account.uid)
-class SIPHandler(base.BaseHandler):
+class SIPHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self, uid):
account = self.backend.accounts.get_by_uid(uid)
self.render("people/sip.html", account=account)
-class UsersHandler(base.BaseHandler):
+class UsersHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self):
self.render("people/users.html")
-class UserHandler(base.BaseHandler):
+class UserHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self, uid):
account = self.backend.accounts.get_by_uid(uid)
self.render("people/user.html", account=account)
-class UserEditHandler(base.BaseHandler):
+class UserEditHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self, uid):
account = self.backend.accounts.get_by_uid(uid)
self.redirect("/users/%s" % account.uid)
-class UserPasswdHandler(base.BaseHandler):
+class UserPasswdHandler(auth.CacheMixin, base.BaseHandler):
@tornado.web.authenticated
def get(self, uid):
account = self.backend.accounts.get_by_uid(uid)