40 lines
1.5 KiB
Python
40 lines
1.5 KiB
Python
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
|