List Publication Collaborators
Mixin that provides common permission checking methods for publication-related views.
Path parameters
id
Response
id
user
Mixin to handle profile_picture serialization for WebSocket compatibility.
This mixin adds a SerializerMethodField for profile_picture that converts
ImageFieldFile objects to URL strings, making them JSON serializable for
WebSocket consumers.
The mixin intelligently handles profile pictures from IAMUserDetail by:
1. Accessing the related `details` queryset on the IAMUser model
2. Extracting the ImageFieldFile from the first detail record
3. Converting it to a URL string for JSON serialization
Usage:
```python
class MyUserSerializer(ProfilePictureMixin, serializers.ModelSerializer):
class Meta:
model = User
fields = ['id', 'username', 'profile_picture', ...]
```
Note:
- This mixin expects the model to have a `details` related manager
- The related detail should have a `profile_picture` ImageField
- Returns None if no profile picture is found or an error occurs
email
Email of the co-creator. Required if user is not set.
role
Role of the co-creator in the publication
* `owner` - Owner
* `admin` - Admin
* `editor` - Editor
* `viewer` - Viewer
status
* `not_started` - Not Started
* `in_progress` - In Progress
* `completed` - Completed
* `failed` - Failed
Allowed values:
created_at
is_invite

