Skip to content

Commit

Permalink
Fixed permissions check for dynamic tree items (see #165).
Browse files Browse the repository at this point in the history
  • Loading branch information
idlesign committed Jul 27, 2015
1 parent a626559 commit 4fef97f
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 3 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ django-sitetree changelog
=========================


Unreleased
----------
* Fixed permissions check for dynamic tree items (see #165).


v1.4.0
------
+ Introduced Django 1.8 support (see #152).
Expand Down
9 changes: 7 additions & 2 deletions sitetree/sitetreeapp.py
Original file line number Diff line number Diff line change
Expand Up @@ -429,8 +429,13 @@ def get_sitetree(self, alias):

# Resolve item permissions.
if item.access_restricted:
item.perms = set([u'%s.%s' % (perm.content_type.app_label, perm.codename) for perm in
item.access_permissions.select_related()])
permissions_src = (
item.permissions if getattr(item, 'is_dynamic', False)
else item.access_permissions.select_related())

item.perms = set(
['%s.%s' % (perm.content_type.app_label, perm.codename) for perm in permissions_src])

# Contextual properties.
item.url_resolved = self.url(item)
if VARIABLE_TAG_START in item.title:
Expand Down
4 changes: 3 additions & 1 deletion sitetree/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,9 @@ def item(title, url, children=None, url_as_pattern=True, hint='', alias='', desc
try:
app, codename = perm.split('.')
except ValueError:
raise ValueError('Wrong permission string format: supplied - `%s`; expected - `<app_name>.<permission_name>`.' % perm)
raise ValueError(
'Wrong permission string format: supplied - `%s`; '
'expected - `<app_name>.<permission_name>`.' % perm)

try:
perm = Permission.objects.get(codename=codename, content_type__app_label=app)
Expand Down

0 comments on commit 4fef97f

Please sign in to comment.