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()