From ff0150398ca94726eb77b64a9c40ac8382c5f1d6 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Fri, 12 Jun 2009 01:12:51 +0200 Subject: [PATCH] Updated the FlatPage permissions to work with the latest changes. Added a custom permission check 'top_secret'. Added more examples to flatpage template. --- example/exampleapp/permissions.py | 13 ++++- example/templates/flatpages/default.html | 60 +++++++++++++++++++++--- 2 files changed, 64 insertions(+), 9 deletions(-) diff --git a/example/exampleapp/permissions.py b/example/exampleapp/permissions.py index cd46269..8f0fa25 100644 --- a/example/exampleapp/permissions.py +++ b/example/exampleapp/permissions.py @@ -1,6 +1,15 @@ from django.contrib.flatpages.models import FlatPage -from authority.permissions import BasePermission +from django.utils.translation import ugettext_lazy as _ -class FlatPagePermission(BasePermission): +from authority import permissions + +class FlatPagePermissionSet(permissions.BasePermission): model = FlatPage label = 'flatpage_permission' + checks = ('top_secret',) + + def top_secret(self, flatpage=None): + if flatpage and flatpage.registration_required: + return self.can_browse(obj=flatpage) + return False + top_secret.verbose_name=_('Is allowed to see top secret flatpages') diff --git a/example/templates/flatpages/default.html b/example/templates/flatpages/default.html index 864217a..73a3ae3 100644 --- a/example/templates/flatpages/default.html +++ b/example/templates/flatpages/default.html @@ -1,11 +1,57 @@ -{% load permissions_tags %} -

{{ flatpage.title }}

-

{{ flatpage.content }}

+{% load permissions %} + + + {{ flatpage.title }} + + +

Title: {{ flatpage.title }}

+

Content: {{ flatpage.content }}

+

Examples

+
    +
  1. The permissions granted for this flatpage: + + {% get_permissions flatpage for request.user %} +

      get_permissions flatpage for request.user

      + {% for perm in permissions %} +
    • {{ perm.user }}: {{ perm }} {% permission_delete_link perm %}
    • + {% endfor %} +
    + + {% get_permissions flatpage for request.user as "request_user_permissions" %} +

      get_permissions flatpage for request.user as "request_user_permissions"

      + {% for perm in request_user_permissions %} +
    • {{ perm.user }}: {{ perm }} {% permission_delete_link perm %}
    • + {% endfor %} +
    + + {% get_permissions flatpage as "all_permissions" %} +

      get_permissions flatpage as "all_permissions"

      + {% for perm in all_permissions %} +
    • {{ perm.user }}: {{ perm }} {% permission_delete_link perm %}
    • + {% endfor %} +
    + +
  2. + +
  3. Permission form for adding a specific permission "add_flatpage" {% permission_form flatpage "add_flatpage" %} +
  4. -{% get_permissions_for flatpage %} +
  5. Permission form with a list of options queried from the authority +{% permission_form flatpage %} -{% for perm in permissions %} -

    {{ perm.user }}: {{ perm }} {% permission_delete_link perm %}

    -{% endfor %} +

    Can I change this flatpage?

    +

    Test for the default permission "can_change" of the custom permission set "flatpage_permission":

    +
    +{% ifhasperm "flatpage_permission.can_change" request.user %} +Yes, you are allowed. +{% else %} +Nope, sorry. +{% endifhasperm %} +
    +
  6. +
+ + \ No newline at end of file