Example #1
0
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))
Example #2
0
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))
Example #3
0
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))
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
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))
Example #7
0
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') 
Example #8
0
                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')
Example #9
0
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')
Example #10
0
                    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',