def switch_tenants(request, tenant_id): form, handled = LoginWithTenant.maybe_handle( request, initial={'tenant': tenant_id, 'username': request.user.username}) token = api.token_for_region(request) LOG.debug('token %s' % token) if token: data = { 'username' : request.user.username, 'tenant_id' : tenant_id } retval = util.auth_with_token(request, data, token, tenant_id, request.session.get('region', None), True) LOG.debug("retval %s" % retval) if retval: util.set_default_for_region(request) api.check_services_for_region(request) request.session['tenant_id'] = tenant_id return shortcuts.redirect('dash_containers', tenant_id) if handled: return handled return shortcuts.render_to_response('switch_tenants.html', { 'to_tenant': tenant_id, 'form': form, }, context_instance=template.RequestContext(request))
def switch_tenants(request, tenant_id): form, handled = LoginWithTenant.maybe_handle(request, initial={ 'tenant': tenant_id, 'username': request.user.username }) token = api.token_for_region(request) LOG.debug('token %s' % token) if token: data = {'username': request.user.username, 'tenant_id': tenant_id} retval = util.auth_with_token(request, data, token, tenant_id, request.session.get('region', None), True) LOG.debug("retval %s" % retval) if retval: util.set_default_for_region(request) api.check_services_for_region(request) request.session['tenant_id'] = tenant_id return shortcuts.redirect('dash_containers', tenant_id) if handled: return handled return shortcuts.render_to_response( 'switch_tenants.html', { 'to_tenant': tenant_id, 'form': form, }, context_instance=template.RequestContext(request))
def switch_regions(request, region_name): form, handled = LoginWithRegion.maybe_handle( request, initial={'region' : region_name, 'username' : request.user.username}) token = api.token_for_region(request, region_name) LOG.debug('token %s' % token) if token: data = { 'username' : request.user.username, 'region' : region_name } retval = util.auth_with_token(request, data, token, None, region_name, True) LOG.debug("retval %s" % retval) if retval: request.session['region'] = region_name util.set_default_for_region(request) api.check_services_for_region(request) tenant_id = request.session.get('tenant_id', None) if tenant_id: return shortcuts.redirect('dash_containers', tenant_id) else: return shortcuts.redirect('dash_startup') if handled: request.session['region'] = region_name return handled return shortcuts.render_to_response('switch_regions.html', { 'to_region' : region_name, 'form' : form, }, context_instance=template.RequestContext(request))
def handle(self, request, data): # retrieve endpoints if getattr(settings, "KEYSTONE_USE_LOCAL_FOR_ENDPOINTS_ONLY", False): token = util.auth_with_token( request, data, getattr(settings, "KEYSTONE_ADMIN_TOKEN", '')) else: token = util.auth(request, data, data.get('region'), True) if not token: request.session.clear() return shortcuts.redirect('auth_login') # set default service catalog util.set_default_service_catalog(request, token.serviceCatalog) # region results = util.get_regions(request) LOG.info('results %s' % results) tokens = [] for result in results: data['region'] = result token = util.auth(request, data, result, True) if token: tokens.append(result) if not tokens: request.session.clear() return shortcuts.redirect('auth_login') default_region = getattr(settings, 'SWIFT_DEFAULT_REGION', None) if default_region and api.token_for_region(request, default_region): request.session['region'] = default_region if not request.session.get('region', None): request.session['region'] = tokens[0] tenant = util.get_tenant_for_region(request) util.set_default_for_region(request) api.check_services_for_region(request) if not tenant: return shortcuts.redirect('dash_startup') return shortcuts.redirect('dash_containers', tenant)
def handle(self, request, data): # retrieve endpoints if getattr(settings, "KEYSTONE_USE_LOCAL_FOR_ENDPOINTS_ONLY", False): token = util.auth_with_token(request, data, getattr(settings, "KEYSTONE_ADMIN_TOKEN", '')) else: token = util.auth(request, data, data.get('region'), True) if not token: request.session.clear() return shortcuts.redirect('auth_login') # set default service catalog util.set_default_service_catalog(request, token.serviceCatalog) # region results = util.get_regions(request) LOG.info('results %s' % results) tokens = [] for result in results: data['region'] = result token = util.auth(request, data, result, True) if token: tokens.append(result) if not tokens: request.session.clear() return shortcuts.redirect('auth_login') default_region = getattr(settings, 'SWIFT_DEFAULT_REGION', None) if default_region and api.token_for_region(request, default_region): request.session['region'] = default_region if not request.session.get('region', None): request.session['region'] = tokens[0] tenant = util.get_tenant_for_region(request) util.set_default_for_region(request) api.check_services_for_region(request) if not tenant: return shortcuts.redirect('dash_startup') return shortcuts.redirect('dash_containers', tenant)
def switch_regions(request, region_name): form, handled = LoginWithRegion.maybe_handle(request, initial={ 'region': region_name, 'username': request.user.username }) token = api.token_for_region(request, region_name) LOG.debug('token %s' % token) if token: data = {'username': request.user.username, 'region': region_name} retval = util.auth_with_token(request, data, token, None, region_name, True) LOG.debug("retval %s" % retval) if retval: request.session['region'] = region_name util.set_default_for_region(request) api.check_services_for_region(request) tenant_id = request.session.get('tenant_id', None) if tenant_id: return shortcuts.redirect('dash_containers', tenant_id) else: return shortcuts.redirect('dash_startup') if handled: request.session['region'] = region_name return handled return shortcuts.render_to_response( 'switch_regions.html', { 'to_region': region_name, 'form': form, }, context_instance=template.RequestContext(request))
def login(request): if request.user and request.user.is_authenticated(): if request.session.get('tenant_id', None): return shortcuts.redirect('dash_containers', request.session['tenant_id']) elif getattr(request.user, "tenant_id", None): return shortcuts.redirect('dash_containers', request.user.tenant_id) else: return shortcuts.redirect('dash_startup') # check ssl if not request.is_secure(): messages.error(request, "Gakunin Support needs to be accessed through TLS") return shortcuts.redirect('auth_login') from_email = request.META.get('mail', None) from_eppn = request.META.get('eppn', None) LOG.debug('headers from gakunin %s' % request.META) try: if getattr(settings, "KEYSTONE_USE_LOCAL_FOR_ENDPOINTS_ONLY", False): data = { 'username' : 'dummy' } token = util.auth_with_token(request, data, getattr(settings, "KEYSTONE_ADMIN_TOKEN", ''), None, None, True) else: token = _login_with_gakunin(request, from_email, from_eppn, None, True) if not token: request.session.clear() return shortcuts.redirect('auth_login') util.set_default_service_catalog(request, token.serviceCatalog) regions = util.get_regions(request) default_region = getattr(settings, 'SWIFT_DEFAULT_REGION', None) tokens = [] for region in regions: if region == default_region: retval = _login_with_gakunin(request, from_email, from_eppn, region, True) if retval: request.session['region'] = region else: retval = _login_with_gakunin(request, from_email, from_eppn, region, True) if retval: tokens.append(region) if not tokens: request.session.clear() return shortcuts.redirect('auth_login') if not request.session.get('region', None): request.session['region'] = tokens[0] tenant = util.get_tenant_for_region(request) util.set_default_for_region(request) api.check_services_for_region(request) if not tenant: return shortcuts.redirect('dash_startup') else: return shortcuts.redirect('dash_containers', tenant) except Exception, e: messages.error(request, 'Exception occured while gakunin login %s' % str(e)) LOG.exception('exception') return shortcuts.redirect('auth_login')
if token: api.user_update_eppn(request, token.user['id'], from_eppn, region) except Exception, e: LOG.exception('error in token_create_by_email') pass if not token: messages.error(request, "Can't retrieve information from Gakunin") return None util.set_region_info(request, token, region) data = {} data['username'] = token.user['name'] return util.auth_with_token(request, data, token.id, None, region, True) except Exception, e: if show_error: messages.error(request, 'Exception occured while gakunin login %s' % str(e)) LOG.exception('exception') def login(request): if request.user and request.user.is_authenticated(): if request.session.get('tenant_id', None): return shortcuts.redirect('dash_containers', request.session['tenant_id']) elif getattr(request.user, "tenant_id", None): return shortcuts.redirect('dash_containers', request.user.tenant_id) else: return shortcuts.redirect('dash_startup')
def login(request): if request.user and request.user.is_authenticated(): if request.session.get('tenant_id', None): return shortcuts.redirect('dash_containers', request.session['tenant_id']) elif getattr(request.user, "tenant_id", None): return shortcuts.redirect('dash_containers', request.user.tenant_id) else: return shortcuts.redirect('dash_startup') # check ssl if not request.is_secure(): messages.error(request, "Gakunin Support needs to be accessed through TLS") return shortcuts.redirect('auth_login') from_email = request.META.get('mail', None) from_eppn = request.META.get('eppn', None) LOG.debug('headers from gakunin %s' % request.META) try: if getattr(settings, "KEYSTONE_USE_LOCAL_FOR_ENDPOINTS_ONLY", False): data = {'username': '******'} token = util.auth_with_token( request, data, getattr(settings, "KEYSTONE_ADMIN_TOKEN", ''), None, None, True) else: token = _login_with_gakunin(request, from_email, from_eppn, None, True) if not token: request.session.clear() return shortcuts.redirect('auth_login') util.set_default_service_catalog(request, token.serviceCatalog) regions = util.get_regions(request) default_region = getattr(settings, 'SWIFT_DEFAULT_REGION', None) tokens = [] for region in regions: if region == default_region: retval = _login_with_gakunin(request, from_email, from_eppn, region, True) if retval: request.session['region'] = region else: retval = _login_with_gakunin(request, from_email, from_eppn, region, True) if retval: tokens.append(region) if not tokens: request.session.clear() return shortcuts.redirect('auth_login') if not request.session.get('region', None): request.session['region'] = tokens[0] tenant = util.get_tenant_for_region(request) util.set_default_for_region(request) api.check_services_for_region(request) if not tenant: return shortcuts.redirect('dash_startup') else: return shortcuts.redirect('dash_containers', tenant) except Exception, e: messages.error(request, 'Exception occured while gakunin login %s' % str(e)) LOG.exception('exception') return shortcuts.redirect('auth_login')
api.user_update_eppn(request, token.user['id'], from_eppn, region) except Exception, e: LOG.exception('error in token_create_by_email') pass if not token: messages.error(request, "Can't retrieve information from Gakunin") return None util.set_region_info(request, token, region) data = {} data['username'] = token.user['name'] return util.auth_with_token(request, data, token.id, None, region, True) except Exception, e: if show_error: messages.error(request, 'Exception occured while gakunin login %s' % str(e)) LOG.exception('exception') def login(request): if request.user and request.user.is_authenticated(): if request.session.get('tenant_id', None): return shortcuts.redirect('dash_containers', request.session['tenant_id']) elif getattr(request.user, "tenant_id", None): return shortcuts.redirect('dash_containers',