Updated the FlatPage permissions to work with the latest changes. Added a custom permission check 'top_secret'. Added more examples to flatpage template.

This commit is contained in:
Jannis Leidel 2009-06-12 01:12:51 +02:00
parent dfa487e44d
commit ff0150398c
2 changed files with 64 additions and 9 deletions

View file

@ -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')

View file

@ -1,11 +1,57 @@
{% load permissions_tags %}
<h1>{{ flatpage.title }}</h1>
<p>{{ flatpage.content }}</p>
{% load permissions %}<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>{{ flatpage.title }}</title>
</head>
<body>
<h1>Title: {{ flatpage.title }}</h1>
<p>Content: {{ flatpage.content }}</p>
<h2>Examples</h2>
<ol>
<li>The permissions granted for this flatpage:
{% get_permissions flatpage for request.user %}
<ul><h4>get_permissions flatpage for request.user</h4>
{% for perm in permissions %}
<li>{{ perm.user }}: {{ perm }} {% permission_delete_link perm %}</li>
{% endfor %}
</ul>
{% get_permissions flatpage for request.user as "request_user_permissions" %}
<ul><h4>get_permissions flatpage for request.user as "request_user_permissions"</h4>
{% for perm in request_user_permissions %}
<li>{{ perm.user }}: {{ perm }} {% permission_delete_link perm %}</li>
{% endfor %}
</ul>
{% get_permissions flatpage as "all_permissions" %}
<ul><h4>get_permissions flatpage as "all_permissions"</h4>
{% for perm in all_permissions %}
<li>{{ perm.user }}: {{ perm }} {% permission_delete_link perm %}</li>
{% endfor %}
</ul>
</li>
<li>Permission form for adding a specific permission "add_flatpage"
{% permission_form flatpage "add_flatpage" %}
</li>
{% get_permissions_for flatpage %}
<li>Permission form with a list of options queried from the authority
{% permission_form flatpage %}
{% for perm in permissions %}
<p>{{ perm.user }}: {{ perm }} {% permission_delete_link perm %}</p>
{% endfor %}
<h2>Can I change this flatpage?</h2>
<p>Test for the default permission "can_change" of the custom permission set "flatpage_permission":</p>
<blockquote>
{% ifhasperm "flatpage_permission.can_change" request.user %}
Yes, you are allowed.
{% else %}
Nope, sorry.
{% endifhasperm %}
</blockquote>
</li>
</ol>
</body>