Refactor user account system and remove moderation integration

- Remove first_name and last_name fields from User model
- Add user deletion and social provider services
- Restructure auth serializers into separate directory
- Update avatar upload functionality and API endpoints
- Remove django-moderation integration documentation
- Add mandatory compliance enforcement rules
- Update frontend documentation with API usage examples
This commit is contained in:
pacnpal
2025-08-30 07:31:58 -04:00
parent bb7da85516
commit 04394b9976
31 changed files with 7200 additions and 1297 deletions

View File

@@ -44,6 +44,10 @@ class User(AbstractUser):
FRIENDS = "friends", _("Friends Only")
PRIVATE = "private", _("Private")
# Override inherited fields to remove them
first_name = None
last_name = None
# Read-only ID
user_id = models.CharField(
max_length=10,
@@ -179,7 +183,10 @@ class UserProfile(models.Model):
"""
if self.avatar:
# Return Cloudflare Images URL with avatar variant
return self.avatar.url_variant("avatar")
base_url = self.avatar.url
if '/public' in base_url:
return base_url.replace('/public', '/avatar')
return base_url
# Generate default letter-based avatar using first letter of username
first_letter = self.user.username[0].upper() if self.user.username else "U"
@@ -191,11 +198,20 @@ class UserProfile(models.Model):
Return avatar variants for different use cases
"""
if self.avatar:
return {
"thumbnail": self.avatar.url_variant("thumbnail"),
"avatar": self.avatar.url_variant("avatar"),
"large": self.avatar.url_variant("large"),
}
base_url = self.avatar.url
if '/public' in base_url:
return {
"thumbnail": base_url.replace('/public', '/thumbnail'),
"avatar": base_url.replace('/public', '/avatar'),
"large": base_url.replace('/public', '/large'),
}
else:
# If no variant in URL, return the same URL for all variants
return {
"thumbnail": base_url,
"avatar": base_url,
"large": base_url,
}
# For default avatars, return the same URL for all variants
default_url = self.get_avatar_url()