from django.contrib import admin from apps.jwt_auth.models import JwtToken, CUserRoleLoginOpt from utils.admin_base import CRMModelAdmin @admin.register(JwtToken) class JwtTokenAdmin(CRMModelAdmin): list_display = ('id', 'cuser', 'cuser_role', 'expire', 'is_blocked') list_filter = ('is_blocked', 'cuser_role__sys_ws') search_fields = ('cuser__username', 'cuser__mobile') exclude = ('refresh', 'access') sensitive_fields = ('refresh', 'access') readonly_fields = ('cuser', 'cuser_role', 'expire', 'is_blocked') actions = ('revoke_sessions', 'export_selected') @admin.action(description='ابطال نشست‌های انتخاب‌شده', permissions=['change']) def revoke_sessions(self, request, queryset): count = queryset.update(is_blocked=True) for obj in queryset: self.log_change(request, obj, 'نشست از پنل مدیریت ابطال شد.') self.message_user(request, f'{count} نشست ابطال شد.') def has_add_permission(self, request): return False @admin.register(CUserRoleLoginOpt) class CUserRoleLoginOptAdmin(CRMModelAdmin): list_display = ('id', 'cuser', 'cuser_role', 'expire') search_fields = ('cuser__username', 'cuser__mobile') exclude = ('uuid',) sensitive_fields = ('uuid',) readonly_fields = ('cuser', 'cuser_role', 'expire') def has_add_permission(self, request): return False def has_change_permission(self, request, obj=None): return False