diff --git a/apps/django_gpg/__init__.py b/apps/django_gpg/__init__.py index e45ae78165..3d703f21d6 100644 --- a/apps/django_gpg/__init__.py +++ b/apps/django_gpg/__init__.py @@ -5,29 +5,21 @@ from navigation.api import register_links, register_top_menu, \ register_model_list_columns, register_multi_item_links, \ register_sidebar_template from main.api import register_diagnostic, register_maintenance_links -from permissions.api import register_permission, set_namespace_title +from permissions.models import PermissionNamespace, Permission from project_setup.api import register_setup from hkp import Key as KeyServerKey from django_gpg.api import Key -PERMISSION_DOCUMENT_VERIFY = {'namespace': 'django_gpg', 'name': 'document_verify', 'label': _(u'Verify document signatures')} -PERMISSION_KEY_VIEW = {'namespace': 'django_gpg', 'name': 'key_view', 'label': _(u'View keys')} -PERMISSION_KEY_DELETE = {'namespace': 'django_gpg', 'name': 'key_delete', 'label': _(u'Delete keys')} -PERMISSION_KEYSERVER_QUERY = {'namespace': 'django_gpg', 'name': 'keyserver_query', 'label': _(u'Query keyservers')} -PERMISSION_KEY_RECEIVE = {'namespace': 'django_gpg', 'name': 'key_receive', 'label': _(u'Import key from keyservers')} -PERMISSION_SIGNATURE_UPLOAD = {'namespace': 'django_gpg', 'name': 'signature_upload', 'label': _(u'Upload detached signatures')} -PERMISSION_SIGNATURE_DOWNLOAD = {'namespace': 'django_gpg', 'name': 'key_receive', 'label': _(u'Download detached signatures')} +django_gpg_namespace = PermissionNamespace('django_gpg', _(u'Signatures')) -# Permission setup -set_namespace_title('django_gpg', _(u'Signatures')) -register_permission(PERMISSION_DOCUMENT_VERIFY) -register_permission(PERMISSION_KEY_VIEW) -register_permission(PERMISSION_KEY_DELETE) -register_permission(PERMISSION_KEYSERVER_QUERY) -register_permission(PERMISSION_KEY_RECEIVE) -register_permission(PERMISSION_SIGNATURE_UPLOAD) -register_permission(PERMISSION_SIGNATURE_DOWNLOAD) +PERMISSION_DOCUMENT_VERIFY = Permission.objects.register(django_gpg_namespace, 'document_verify', _(u'Verify document signatures')) +PERMISSION_KEY_VIEW = Permission.objects.register(django_gpg_namespace, 'key_view', _(u'View keys')) +PERMISSION_KEY_DELETE = Permission.objects.register(django_gpg_namespace, 'key_delete', _(u'Delete keys')) +PERMISSION_KEYSERVER_QUERY = Permission.objects.register(django_gpg_namespace, 'keyserver_query', _(u'Query keyservers')) +PERMISSION_KEY_RECEIVE = Permission.objects.register(django_gpg_namespace, 'key_receive', _(u'Import keys from keyservers')) +PERMISSION_SIGNATURE_UPLOAD = Permission.objects.register(django_gpg_namespace, 'signature_upload', _(u'Upload detached signatures')) +PERMISSION_SIGNATURE_DOWNLOAD = Permission.objects.register(django_gpg_namespace, 'signature_download', _(u'Download detached signatures')) def has_embedded_signature(context): return context['object'].signature_state @@ -59,6 +51,3 @@ register_links(Key, [key_delete]) register_links(KeyServerKey, [key_receive]) register_setup(key_setup) - - - diff --git a/apps/django_gpg/views.py b/apps/django_gpg/views.py index 6fe629dbe8..6a1a334a25 100644 --- a/apps/django_gpg/views.py +++ b/apps/django_gpg/views.py @@ -12,7 +12,7 @@ from django.conf import settings from django.template.defaultfilters import force_escape from documents.models import Document, RecentDocument -from permissions.api import check_permissions +from permissions.models import Permission from common.utils import pretty_size, parse_range, urlquote, \ return_diff, encapsulate from filetransfers.api import serve_file @@ -31,7 +31,7 @@ logger = logging.getLogger(__name__) def key_receive(request, key_id): - check_permissions(request.user, [PERMISSION_KEY_RECEIVE]) + Permission.objects.check_permissions(request.user, [PERMISSION_KEY_RECEIVE]) post_action_redirect = None previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/'))) @@ -61,7 +61,7 @@ def key_receive(request, key_id): def key_list(request, secret=True): - check_permissions(request.user, [PERMISSION_KEY_VIEW]) + Permission.objects.check_permissions(request.user, [PERMISSION_KEY_VIEW]) if secret: object_list = Key.get_all(gpg, secret=True) @@ -88,7 +88,7 @@ def key_list(request, secret=True): def key_delete(request, fingerprint, key_type): - check_permissions(request.user, [PERMISSION_KEY_DELETE]) + Permission.objects.check_permissions(request.user, [PERMISSION_KEY_DELETE]) secret = key_type == 'sec' key = Key.get(gpg, fingerprint, secret=secret) @@ -117,7 +117,7 @@ def key_delete(request, fingerprint, key_type): def key_query(request): - check_permissions(request.user, [PERMISSION_KEYSERVER_QUERY]) + Permission.objects.check_permissions(request.user, [PERMISSION_KEYSERVER_QUERY]) subtemplates_list = [] term = request.GET.get('term') @@ -192,7 +192,7 @@ def key_query(request): def document_verify(request, document_pk): - check_permissions(request.user, [PERMISSION_DOCUMENT_VERIFY]) + Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_VERIFY]) document = get_object_or_404(Document, pk=document_pk) RecentDocument.objects.add_document_for_user(request.user, document) @@ -234,7 +234,7 @@ def document_verify(request, document_pk): def document_signature_upload(request, document_pk): - check_permissions(request.user, [PERMISSION_SIGNATURE_UPLOAD]) + Permission.objects.check_permissions(request.user, [PERMISSION_SIGNATURE_UPLOAD]) document = get_object_or_404(Document, pk=document_pk) RecentDocument.objects.add_document_for_user(request.user, document) @@ -267,7 +267,7 @@ def document_signature_upload(request, document_pk): def document_signature_download(request, document_pk): - check_permissions(request.user, [PERMISSION_SIGNATURE_DOWNLOAD]) + Permission.objects.check_permissions(request.user, [PERMISSION_SIGNATURE_DOWNLOAD]) document = get_object_or_404(Document, pk=document_pk) try: