X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/ff382f6c37063c0c4c5d21c2834a8759e25c5d02..590be2077917fbeb3ee169604bef99b42029ffba:/src/catalogue/api/fields.py?ds=inline

diff --git a/src/catalogue/api/fields.py b/src/catalogue/api/fields.py
index cab947592..d95c3a857 100644
--- a/src/catalogue/api/fields.py
+++ b/src/catalogue/api/fields.py
@@ -1,9 +1,10 @@
-# -*- coding: utf-8 -*-
 # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
 #
 from rest_framework import serializers
+from api.fields import AbsoluteURLField
 from catalogue.models import Book
+from club.models import Membership
 
 
 class BookLiked(serializers.ReadOnlyField):
@@ -13,9 +14,21 @@ class BookLiked(serializers.ReadOnlyField):
     def to_representation(self, value):
         request = self.context['request']
         if not hasattr(request, 'liked_books'):
-            if request.user.is_authenticated():
-                request.liked_books = set(Book.tagged.with_any(request.user.tag_set.all()).values_list('id', flat=True))
+            if request.user.is_authenticated:
+                request.liked_books = set(
+                    Book.tagged.with_any(request.user.tag_set.all()).values_list('id', flat=True)
+                )
             else:
                 request.liked_books = None
         if request.liked_books is not None:
             return value in request.liked_books
+
+
+class EmbargoURLField(AbsoluteURLField):
+    def to_representation(self, value):
+        request = self.context['request']
+        # FIXME: See #3955.
+        if True or Membership.is_active_for(request.user):
+            return super().to_representation(value)
+        else:
+            return None