mirror of
https://code.eliotberriot.com/funkwhale/funkwhale.git
synced 2025-10-04 00:39:16 +02:00
See #852: improved routing logic for federation messages (support multiple objects types for one route)
This commit is contained in:
parent
1aa3f3f340
commit
9f3182caf7
19 changed files with 561 additions and 54 deletions
|
@ -11,6 +11,7 @@ from versatileimagefield.serializers import VersatileImageFieldSerializer
|
|||
|
||||
from funkwhale_api.activity import serializers as activity_serializers
|
||||
from funkwhale_api.common import serializers as common_serializers
|
||||
from funkwhale_api.federation import models as federation_models
|
||||
from . import adapters
|
||||
from . import models
|
||||
|
||||
|
@ -51,6 +52,17 @@ class RegisterSerializer(RS):
|
|||
get_adapter().clean_password(data["password1"], user)
|
||||
return data
|
||||
|
||||
def validate_username(self, value):
|
||||
username = super().validate_username(value)
|
||||
duplicates = federation_models.Actor.objects.local().filter(
|
||||
preferred_username__iexact=username
|
||||
)
|
||||
if duplicates.exists():
|
||||
raise serializers.ValidationError(
|
||||
"A user with that username already exists."
|
||||
)
|
||||
return username
|
||||
|
||||
def save(self, request):
|
||||
user = super().save(request)
|
||||
if self.validated_data.get("invitation"):
|
||||
|
@ -143,3 +155,17 @@ class MeSerializer(UserReadSerializer):
|
|||
class PasswordResetSerializer(PRS):
|
||||
def get_email_options(self):
|
||||
return {"extra_email_context": adapters.get_email_context()}
|
||||
|
||||
|
||||
class UserDeleteSerializer(serializers.Serializer):
|
||||
password = serializers.CharField()
|
||||
confirm = serializers.BooleanField()
|
||||
|
||||
def validate_password(self, value):
|
||||
if not self.instance.check_password(value):
|
||||
raise serializers.ValidationError("Invalid password")
|
||||
|
||||
def validate_confirm(self, value):
|
||||
if not value:
|
||||
raise serializers.ValidationError("Please confirm deletion")
|
||||
return value
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue