74 lines
1.9 KiB
Python
74 lines
1.9 KiB
Python
"""
|
|
Override admin configuration for django-oauth-toolkit
|
|
"""
|
|
|
|
from django.contrib.admin import ModelAdmin, site
|
|
from oauth2_provider import models
|
|
|
|
|
|
def reregister(model_class):
|
|
"""
|
|
Remove the existing admin, and register it anew with the given ModelAdmin
|
|
|
|
Usage:
|
|
|
|
@reregister(ModelClass)
|
|
class ModelClassAdmin(ModelAdmin):
|
|
pass
|
|
"""
|
|
def decorator(cls):
|
|
"""
|
|
The actual decorator that does the work.
|
|
"""
|
|
site.unregister(model_class)
|
|
site.register(model_class, cls)
|
|
return cls
|
|
|
|
return decorator
|
|
|
|
|
|
@reregister(models.AccessToken)
|
|
class DOTAccessTokenAdmin(ModelAdmin):
|
|
"""
|
|
Custom AccessToken Admin
|
|
"""
|
|
date_hierarchy = u'expires'
|
|
list_display = [u'token', u'user', u'application', u'expires']
|
|
list_filter = [u'application']
|
|
raw_id_fields = [u'user']
|
|
search_fields = [u'token', u'user__username']
|
|
|
|
|
|
@reregister(models.RefreshToken)
|
|
class DOTRefreshTokenAdmin(ModelAdmin):
|
|
"""
|
|
Custom AccessToken Admin
|
|
"""
|
|
list_display = [u'token', u'user', u'application', u'access_token']
|
|
list_filter = [u'application']
|
|
raw_id_fields = [u'user', u'access_token']
|
|
search_fields = [u'token', u'user__username', u'access_token__token']
|
|
|
|
|
|
@reregister(models.Application)
|
|
class DOTApplicationAdmin(ModelAdmin):
|
|
"""
|
|
Custom Application Admin
|
|
"""
|
|
list_display = [u'name', u'user', u'client_type', u'authorization_grant_type', u'client_id']
|
|
list_filter = [u'client_type', u'authorization_grant_type']
|
|
raw_id_fields = [u'user']
|
|
search_fields = [u'name', u'user__username', u'client_id']
|
|
|
|
|
|
@reregister(models.Grant)
|
|
class DOTGrantAdmin(ModelAdmin):
|
|
"""
|
|
Custom Grant Admin
|
|
"""
|
|
date_hierarchy = u'expires'
|
|
list_display = [u'code', u'user', u'application', u'expires']
|
|
list_filter = [u'application']
|
|
raw_id_fields = [u'user']
|
|
search_fields = [u'code', u'user__username']
|