Files
test-auth/app/sso/admin.py

75 lines
2.2 KiB
Python

from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
from django.contrib.contenttypes import generic
from sso.models import Service, ServiceAccount, SSOUser, SSOUserNote, PermissionRule, PermissionRuleset
from sso.tasks import update_user_access
class ServiceAdmin(admin.ModelAdmin):
list_display = ('name', 'url', 'api', 'active')
search_fields = ['name']
list_filter = ('active',)
class ServiceAccountAdmin(admin.ModelAdmin):
list_display = ('service', 'service_uid', 'user', 'active')
search_fields = ['service_uid', 'user__username']
list_filter = ('service', 'active')
class SSOUserProfileInline(admin.StackedInline):
model = SSOUser
fk_name = 'user'
max_num = 1
readonly_fields = ('primary_character',)
can_delete = False
# Define a new UserAdmin class
class SSOUserAdmin(UserAdmin):
inlines = [SSOUserProfileInline, ]
actions = ['user_update_access', ]
def user_update_access(self, request, queryset):
for obj in queryset:
update_user_access.delay(obj.id)
if queryset.count() == 1:
message_bit = '1 user'
else:
message_bit = '%s users' % queryset.count()
self.message_user(request, "%s queued for updating." % message_bit)
user_update_access.short_description = "Update User Access"
class SSOUserNoteAdmin(admin.ModelAdmin):
list_display = ('user', 'note', 'date_created', 'created_by')
search_fields = ['user__username']
class PermissionRuleInline(generic.GenericTabularInline):
model = PermissionRule
extra = 1
ct_field = ''
ct_fk_field = ''
class PermissionRuleAdmin(admin.ModelAdmin):
pass
class PermissionRulesetAdmin(admin.ModelAdmin):
list_display = ('name', 'group', 'active')
list_filter = ('active',)
search_fields = ('name', 'group__name')
inlines = [PermissionRuleInline,]
admin.site.register(Service, ServiceAdmin)
admin.site.register(ServiceAccount, ServiceAccountAdmin)
admin.site.unregister(User)
admin.site.register(User, SSOUserAdmin)
admin.site.register(SSOUserNote, SSOUserNoteAdmin)
admin.site.register(PermissionRuleset, PermissionRulesetAdmin)
admin.site.register(PermissionRule, PermissionRuleAdmin)