admin.py 1.2 KB
from django.contrib import admin
from django.urls import reverse
from django.views.decorators.cache import never_cache
from django.http import HttpResponseRedirect
from settings import conf


iwa_admin_url_params = {
    'scope': 'openid',
    'response_type': 'code',
    'redirect_uri': conf.IWA_ADMIN_REDIRECT_URI,
    'client_id': conf.IWA_CLIENT_ID,
    'acr_values': 'strongAuth4000Service'
}
iwa_admin_url_params_str = '&'.join(['{0}={1}'.format(k, v) for k, v in iwa_admin_url_params.items()])
iwa_admin_url = '{0}realms/root/realms/intranetb2x/authorize?{1}'.format(conf.IWA_URL, iwa_admin_url_params_str)


class MyAdminSite(admin.AdminSite):
    site_header = 'BMW OCR'
    site_title = 'BMW OCR'

    @never_cache
    def login(self, request, extra_context=None):
        if request.method == 'GET' and self.has_permission(request):
            # Already logged-in, redirect to admin index
            index_path = reverse('admin:index', current_app=self.name)
            return HttpResponseRedirect(index_path)
        return HttpResponseRedirect(iwa_admin_url)
        # return HttpResponseRedirect('https://staging-bmw-ocr.situdata.com/api/user/adminlogin/?state=admin&code=xxx')


admin_site = MyAdminSite()