Collection: implement collection membership.

This commit is contained in:
Tom Hacohen
2020-02-26 20:38:07 +02:00
parent e0d593a9b6
commit be11e3e0e6
3 changed files with 57 additions and 10 deletions

View File

@@ -31,29 +31,25 @@ class BinaryBase64Field(serializers.Field):
class CollectionSerializer(serializers.ModelSerializer):
owner = serializers.SlugRelatedField(
slug_field=User.USERNAME_FIELD,
read_only=True
)
encryptionKey = serializers.SerializerMethodField('get_key_from_context')
permissions = serializers.SerializerMethodField('get_permission_from_context')
accessLevel = serializers.SerializerMethodField('get_access_level_from_context')
ctag = serializers.SerializerMethodField('get_ctag')
class Meta:
model = models.Collection
fields = ('uid', 'version', 'owner', 'encryptionKey', 'permissions', 'ctag')
fields = ('uid', 'version', 'accessLevel', 'encryptionKey', 'ctag')
def get_key_from_context(self, obj):
request = self.context.get('request', None)
if request is not None:
return 'FIXME'
return obj.members.get(user=request.user).encryptionKey
return None
def get_permission_from_context(self, obj):
def get_access_level_from_context(self, obj):
request = self.context.get('request', None)
if request is not None:
return 'FIXME'
return 'readOnly'
return obj.members.get(user=request.user).accessLevel
return None
def get_ctag(self, obj):
return 'FIXME'