Merge pull request #99 from benkonrath/admin_class_permissions

Use admin class function to check permissions.
fix_request_path_info
Diederik van der Boor 2014-09-22 16:03:55 +02:00
commit 84791daf47
1 changed files with 4 additions and 9 deletions

View File

@ -27,13 +27,6 @@ except ImportError:
def add_preserved_filters(context, form_url): def add_preserved_filters(context, form_url):
return form_url return form_url
try:
from django.contrib.auth import get_permission_codename
except ImportError:
# Django < 1.6
from django.contrib.auth.management import _get_permission_codename as get_permission_codename
__all__ = ( __all__ = (
'PolymorphicModelChoiceForm', 'PolymorphicParentModelAdmin', 'PolymorphicModelChoiceForm', 'PolymorphicParentModelAdmin',
@ -191,8 +184,10 @@ class PolymorphicParentModelAdmin(admin.ModelAdmin):
""" """
choices = [] choices = []
for model, _ in self.get_child_models(): for model, _ in self.get_child_models():
if not request.user.has_perm('%s.%s' % (model._meta.app_label, perm_function_name = 'has_{0}_permission'.format(action)
get_permission_codename(action, model._meta))): model_admin = self._get_real_admin_by_model(model)
perm_function = getattr(model_admin, perm_function_name)
if not perm_function(request):
continue continue
ct = ContentType.objects.get_for_model(model, for_concrete_model=False) ct = ContentType.objects.get_for_model(model, for_concrete_model=False)
choices.append((ct.id, model._meta.verbose_name)) choices.append((ct.id, model._meta.verbose_name))