Add key download view, permission, link and test.

This commit is contained in:
Roberto Rosario
2016-03-30 18:29:39 -04:00
parent 94b00c7ce5
commit e8c0951b0d
6 changed files with 88 additions and 13 deletions

View File

@@ -3,20 +3,21 @@ from __future__ import absolute_import, unicode_literals
import logging
from django.contrib import messages
from django.core.files.base import ContentFile
from django.core.urlresolvers import reverse, reverse_lazy
from django.utils.translation import ugettext_lazy as _
from common.generics import (
ConfirmView, SimpleView, SingleObjectDeleteView, SingleObjectDetailView,
SingleObjectListView
SingleObjectDownloadView, SingleObjectListView
)
from .forms import KeyDetailForm, KeySearchForm
from .literals import KEY_TYPE_PUBLIC
from .models import Key
from .permissions import (
permission_key_delete, permission_key_receive, permission_key_view,
permission_keyserver_query
permission_key_delete, permission_key_download, permission_key_receive,
permission_key_view, permission_keyserver_query
)
logger = logging.getLogger(__name__)
@@ -47,6 +48,16 @@ class KeyDetailView(SingleObjectDetailView):
}
class KeyDownloadView(SingleObjectDownloadView):
model = Key
object_permission = permission_key_download
def get_file(self):
key = self.get_object()
return ContentFile(key.key_data, name=key.key_id)
class KeyReceive(ConfirmView):
post_action_redirect = reverse_lazy('django_gpg:key_public_list')
view_permission = permission_key_receive