def login(request): """ Tries to login user and sets session data """ request.session.flush() form = LoginForm(request.POST or None) if form.is_valid(): username = form.cleaned_data['username'] password = form.cleaned_data['password'] tenant = settings.SWIFT_TENANT_NAME + ":" + username try: auth_version = settings.SWIFT_AUTH_VERSION or 1 (storage_url, auth_token) = client.get_auth( settings.SWIFT_AUTH_URL, tenant, password, auth_version=auth_version) request.session['auth_token'] = auth_token request.session['storage_url'] = storage_url request.session['username'] = tenant request.session['user'] = username return redirect(containerview) except client.ClientException: messages.add_message(request, messages.ERROR, _("Login failed.")) return render_to_response('login.html', {'form': form, }, context_instance=RequestContext(request))
def login(request): """ Tries to login user and sets session data """ request.session.flush() form = LoginForm(request.POST or None) if form.is_valid(): username = form.cleaned_data['username'] password = form.cleaned_data['password'] try: auth_version = settings.SWIFT_AUTH_VERSION or 1 (storage_url, auth_token) = client.get_auth(settings.SWIFT_AUTH_URL, username, password, auth_version=auth_version) request.session['auth_token'] = auth_token request.session['storage_url'] = storage_url request.session['username'] = username return redirect(containerview) except client.ClientException: messages.add_message(request, messages.ERROR, _("Login failed.")) return render_to_response('login.html', { 'form': form, }, context_instance=RequestContext(request))
def login(request): """ Tries to login user and sets session data """ request.session.flush() #Process the form if there is a POST request. if (request.POST): form = LoginForm(request.POST) if form.is_valid(): username = form.cleaned_data['username'] password = form.cleaned_data['password'] try: auth_version = settings.SWIFT_AUTH_VERSION or 1 (storage_url, auth_token) = client.get_auth( settings.SWIFT_AUTH_URL, username, password, auth_version=auth_version) request.session['auth_token'] = auth_token request.session['storage_url'] = storage_url request.session['username'] = username request.session['password'] = password tenant_name, user = split_tenant_user_names(username) request.session['user'] = user request.session['tenant_name'] = tenant_name # Upon successful retrieval of a token, if we're unable to # head the account, then the user is not an admin or # swiftoperator and has access to only a container. try: client.head_account(storage_url, auth_token) except: request.session['norole'] = True return redirect(containerview) # Specify why the login failed. except client.ClientException, e: messages.error(request, _("Login failed: {0}".format( e))) # Generic login failure message. except Exception, e: print(e) messages.error(request, _("Login failed."))
def login(request): """ Tries to login user and sets session data """ request.session.flush() form = LoginForm(request.POST or None) if form.is_valid(): username = form.cleaned_data['username'] password = form.cleaned_data['password'] try: auth_version = settings.SWIFT_AUTH_VERSION or 1 (storage_url, auth_token) = client.get_auth(settings.SWIFT_AUTH_URL, username, password, auth_version=auth_version) request.session['auth_token'] = auth_token request.session['storage_url'] = storage_url request.session['username'] = username return redirect(containerview) except client.ClientException: traceback.print_exc() messages.add_message(request, messages.ERROR, _("Login failed.")) if 'REMOTE_USER' in request.META.keys(): try: headers = {'REMOTE_USER': request.META.get('REMOTE_USER')} auth = requests.get(settings.SWIFT_HTTP_AUTH_URL, headers=headers) request.session['auth_token'] = auth.headers['x-auth-token'] request.session['storage_url'] = auth.headers['x-storage-url'] request.session['username'] = request.META.get( 'REMOTE_USER').split('@')[0] return redirect(containerview) except Exception: traceback.print_exc() messages.add_message(request, messages.ERROR, _("Login with REMOTE_USER failed.")) return render_to_response('login.html', { 'form': form, }, context_instance=RequestContext(request))