]> git.parisson.com Git - telemeta.git/commitdiff
add permissions for epub download
authorGuillaume Pellerin <yomguy@parisson.com>
Tue, 9 Jun 2015 15:09:42 +0000 (17:09 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Tue, 9 Jun 2015 15:09:42 +0000 (17:09 +0200)
telemeta/models/collection.py
telemeta/models/corpus.py
telemeta/views/epub.py

index e70fd29d66f22eb569bc77d318b3cf86021653f0..2b76bda4a7ddd82c73ee09b58229f51d1dd158b4 100644 (file)
@@ -128,6 +128,8 @@ class MediaCollection(MediaResource):
 
     exclude = ['alt_ids', 'travail']
 
+    permissions = (("can_download_collection_epub", "Can download collection EPUB"),)
+
     class Meta(MetaCore):
         db_table = 'media_collections'
         ordering = ['code']
index a1f28f96f861637e2cd534c705831e045860fa21..5403747792d735347a5443d200d0e98be308b5ce 100644 (file)
@@ -55,6 +55,8 @@ class MediaCorpus(MediaBaseResource):
 
     objects = MediaCorpusManager()
 
+    permissions = (("can_download_corpus_epub", "Can download corpus EPUB"),)
+
     @property
     def public_id(self):
         return self.code
index 39bb95498878659b60ecc11a56bc976796f0d79e..b7758ba4ee734d099467d2479aabc0c7d0e73bef 100644 (file)
@@ -106,7 +106,6 @@ class BaseEpubMixin(TelemetaBaseMixin):
             self.book.add_item(cover)
             break
 
-
         preamble = epub.EpubHtml(title='Copyright', file_name='copyright' + '.xhtml', lang='fr')
         preamble.content = render_to_string(self.template_preamble, context)
         preamble.is_chapter = True
@@ -209,6 +208,7 @@ class CorpusEpubView(BaseEpubMixin, View):
         return response
 
     @method_decorator(login_required)
+    @method_decorator(permission_required('telemeta.can_download_corpus_epub'))
     def dispatch(self, *args, **kwargs):
         return super(CorpusEpubView, self).dispatch(*args, **kwargs)
 
@@ -231,6 +231,7 @@ class CollectionEpubView(BaseEpubMixin, View):
         return response
 
     @method_decorator(login_required)
+    @method_decorator(permission_required('telemeta.can_download_collection_epub'))
     def dispatch(self, *args, **kwargs):
         return super(CollectionEpubView, self).dispatch(*args, **kwargs)