コード例 #1
0
ファイル: views.py プロジェクト: doana/django-swiftbrowser
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))
コード例 #2
0
ファイル: views.py プロジェクト: cash2one/swift-webstorage
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))
コード例 #3
0
ファイル: main.py プロジェクト: OLRC/django-swiftbrowser
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."))
コード例 #4
0
ファイル: views.py プロジェクト: honza801/django-swiftbrowser
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))