This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
authentic2-idp-oauth2/authentic2_idp_oauth2/admin.py

42 lines
1.4 KiB
Python

from django.utils.translation import ugettext_lazy as _
from django.contrib import admin
from authentic2.decorators import to_iter
from authentic2.attributes_ng.engine import get_attribute_names
from provider.oauth2.admin import ClientAdmin
from . import models
class WebServiceAdmin(admin.ModelAdmin):
prepopulated_fields = {'slug': ('name',)}
class AttributeReleaseInline(admin.TabularInline):
model = models.AttributeRelease
def formfield_for_choice_field(self, db_field, request, **kwargs):
if db_field.name == 'attribute_name':
kwargs['choices'] = to_iter(get_attribute_names)({'user': None, 'request': None})
return super(AttributeReleaseInline, self).formfield_for_choice_field(db_field, request, **kwargs)
class A2ClientAdmin(ClientAdmin):
inlines = [AttributeReleaseInline]
fieldsets = (
(None, {'fields': (
'name',
'user',
) }),
(_('Location'), {'fields': (
'url',
'redirect_uri',
) }),
(_('Credentials'), {'fields': (
'client_id',
'client_type',
'client_secret',
) }),
(_('Logout'),
{'fields': ('logout_url', 'logout_use_iframe', 'logout_use_iframe_timeout'),}),)
admin.site.register(models.WebService, WebServiceAdmin)
admin.site.register(models.A2Client, A2ClientAdmin)