mirror of
https://github.com/i701/sarlink-portal-api.git
synced 2025-06-26 15:17:29 +00:00
Refactor Docker and Django configuration
- Update Dockerfile to use Python 3.11-slim and optimize build steps - Remove Dockerfile.prod and update docker-compose.yml - Remove entrypoint.sh and twilio dependency - Modify Django settings for production security and configuration - Update user serializer to include group permissions - Enhance CSRF and SSL configuration settings
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
from knox.models import AuthToken
|
||||
from django.contrib.auth import authenticate
|
||||
from api.models import User, Atoll, Island
|
||||
from django.contrib.auth.models import Permission
|
||||
|
||||
from rest_framework import serializers
|
||||
|
||||
@ -11,10 +12,20 @@ class CustomUserSerializer(serializers.ModelSerializer):
|
||||
user_permissions = serializers.SerializerMethodField()
|
||||
|
||||
def get_user_permissions(self, instance):
|
||||
permission_ids = instance.user_permissions.all()
|
||||
# Fetch user's direct permissions
|
||||
user_permissions = instance.user_permissions.all()
|
||||
|
||||
# Fetch permissions from groups
|
||||
group_permissions = instance.groups.values_list("permissions", flat=True)
|
||||
|
||||
# Combine both permissions
|
||||
all_permissions = user_permissions | Permission.objects.filter(
|
||||
id__in=group_permissions
|
||||
)
|
||||
|
||||
return [
|
||||
{"id": permission.id, "name": permission.name}
|
||||
for permission in permission_ids
|
||||
for permission in all_permissions.distinct()
|
||||
]
|
||||
|
||||
class Meta: # type: ignore
|
||||
@ -22,10 +33,11 @@ class CustomUserSerializer(serializers.ModelSerializer):
|
||||
fields = (
|
||||
"id",
|
||||
"username",
|
||||
"email",
|
||||
"user_permissions",
|
||||
"id_card",
|
||||
"first_name",
|
||||
"last_name",
|
||||
"email",
|
||||
"last_login",
|
||||
"date_joined",
|
||||
"is_superuser",
|
||||
|
Reference in New Issue
Block a user