Add is_admin field to User model and update related serializers and views
All checks were successful
Build and Push Docker Images / Build and Push Docker Images (push) Successful in 3m37s

This commit is contained in:
i701 2025-06-09 13:28:57 +05:00
parent 7e2f6699b1
commit 69ab87f502
Signed by: i701
GPG Key ID: 54A0DA1E26D8E587
6 changed files with 24 additions and 2 deletions

View File

@ -13,6 +13,7 @@ class UserAdmin(BaseUserAdmin):
"verified",
"is_active",
"is_staff",
"is_admin",
"mobile",
"address",
"wallet_balance",
@ -40,6 +41,7 @@ class UserAdmin(BaseUserAdmin):
"wallet_balance",
"acc_no",
"id_card",
"is_admin",
"dob",
"atoll",
"island",

View File

@ -0,0 +1,17 @@
# Generated by Django 5.2 on 2025-06-09 06:47
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("api", "0015_user_created_at_user_updated_at_temporaryuser"),
]
operations = [
migrations.AddField(
model_name="user",
name="is_admin",
field=models.BooleanField(default=False),
),
]

View File

@ -18,6 +18,7 @@ class User(AbstractUser):
acc_no = models.CharField(max_length=255, blank=True)
id_card = models.CharField(max_length=255, blank=True, unique=True, null=True)
verified = models.BooleanField(default=False)
is_admin = models.BooleanField(default=False)
dob = models.DateField(blank=True, null=True)
terms_accepted = models.BooleanField(default=False)
policy_accepted = models.BooleanField(default=False)

View File

@ -38,6 +38,7 @@ class CustomUserSerializer(serializers.ModelSerializer):
"wallet_balance",
"mobile",
"first_name",
"is_admin",
"last_name",
"email",
"last_login",

View File

@ -338,7 +338,6 @@ class KnoxTokenListApiView(
class ListUserView(StaffEditorPermissionMixin, generics.ListAPIView):
# Create user API view
serializer_class = CustomReadOnlyUserSerializer
filter_backends = [DjangoFilterBackend]
filterset_fields = "__all__"

View File

@ -30,7 +30,9 @@ class DeviceListCreateAPIView(
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
if not request.user.is_superuser:
if request.user.is_authenticated and not getattr(
request.user, "is_admin", False
):
queryset = queryset.filter(user=request.user)
page = self.paginate_queryset(queryset)