diff options
| author | 2018-04-18 00:14:06 +0100 | |
|---|---|---|
| committer | 2018-04-18 00:14:06 +0100 | |
| commit | 9e36e3d58c56e5ebb30242497e13d2e8ca82de1f (patch) | |
| tree | 6cca173e7603b54787353cd56427df63c66b5e0d /pysite/views | |
| parent | Fix sidebar routes (diff) | |
Pass `can_edit` into history templates
Diffstat (limited to 'pysite/views')
| -rw-r--r-- | pysite/views/wiki/history/compare.py | 20 | ||||
| -rw-r--r-- | pysite/views/wiki/history/show.py | 15 | 
2 files changed, 34 insertions, 1 deletions
| diff --git a/pysite/views/wiki/history/compare.py b/pysite/views/wiki/history/compare.py index ff83dc35..d42a6b36 100644 --- a/pysite/views/wiki/history/compare.py +++ b/pysite/views/wiki/history/compare.py @@ -7,6 +7,7 @@ from pygments.lexers import DiffLexer  from werkzeug.exceptions import BadRequest, NotFound  from pysite.base_route import RouteView +from pysite.constants import DEBUG_MODE, EDITOR_ROLES  from pysite.mixins import DBMixin @@ -48,4 +49,21 @@ class CompareView(RouteView, DBMixin):          diff = difflib.unified_diff(before_text, after_text, fromfile=f"{first_rev}.rst", tofile=f"{second_rev}.rst")          diff = "".join(diff)          diff = highlight(diff, DiffLexer(), HtmlFormatter()) -        return self.render("wiki/compare_revision.html", title=after["post"]["title"], diff=diff, slug=before["slug"]) +        return self.render("wiki/compare_revision.html", +                           title=after["post"]["title"], +                           diff=diff, slug=before["slug"], +                           can_edit=self.is_staff()) + +    def is_staff(self): +        if DEBUG_MODE: +            return True +        if not self.logged_in: +            return False + +        roles = self.user_data.get("roles", []) + +        for role in roles: +            if role in EDITOR_ROLES: +                return True + +        return False diff --git a/pysite/views/wiki/history/show.py b/pysite/views/wiki/history/show.py index 9580816f..bbe2466d 100644 --- a/pysite/views/wiki/history/show.py +++ b/pysite/views/wiki/history/show.py @@ -4,6 +4,7 @@ import datetime  from werkzeug.exceptions import NotFound  from pysite.base_route import RouteView +from pysite.constants import DEBUG_MODE, EDITOR_ROLES  from pysite.mixins import DBMixin @@ -25,3 +26,17 @@ class RevisionsListView(RouteView, DBMixin):          results = sorted(results, key=lambda revision: revision["date"], reverse=True)          return self.render("wiki/revision_list.html", page=page, revisions=results), 200 + +    def is_staff(self): +        if DEBUG_MODE: +            return True +        if not self.logged_in: +            return False + +        roles = self.user_data.get("roles", []) + +        for role in roles: +            if role in EDITOR_ROLES: +                return True + +        return False | 
