Example #1
0
 def setUp(self):
     HTTPretty.enable()
     self.backend = module_member(self.backend_path)
     self.complete_url = "/complete/{0}/".format(self.backend.name)
     self.strategy = TestStrategy(self.backend, TestStorage, redirect_uri=self.complete_url)
     self.strategy.set_settings(
         {"SOCIAL_AUTH_AUTHENTICATION_BACKENDS": (self.backend_path, "tests.backends.broken_test.BrokenBackendAuth")}
     )
     # Force backends loading to trash PSA cache
     load_backends(self.strategy.get_setting("SOCIAL_AUTH_AUTHENTICATION_BACKENDS"), force_load=True)
Example #2
0
    def test_load_backends(self):
        loaded_backends = load_backends((
            'social.backends.github.GithubOAuth2',
            'social.backends.facebook.FacebookOAuth2',
            'social.backends.flickr.FlickrOAuth'
        ), force_load=True)
        keys = list(loaded_backends.keys())
        keys.sort()
        self.assertEqual(keys, ['facebook', 'flickr', 'github'])

        backends = ()
        loaded_backends = load_backends(backends, force_load=True)
        self.assertEqual(len(list(loaded_backends.keys())), 0)
    def test_load_backends(self):
        loaded_backends = load_backends((
            'social.backends.github.GithubOAuth2',
            'social.backends.facebook.FacebookOAuth2',
            'social.backends.flickr.FlickrOAuth'
        ))
        keys = list(loaded_backends.keys())
        keys.sort()
        expect(keys).to.equal(['facebook', 'flickr', 'github'])

        backends = ()
        loaded_backends = load_backends(backends, force_load=True)
        expect(len(list(loaded_backends.keys()))).to.equal(0)
    def test_load_backends(self):
        loaded_backends = load_backends(
            ('social.backends.github.GithubOAuth2',
             'social.backends.facebook.FacebookOAuth2',
             'social.backends.flickr.FlickrOAuth'),
            force_load=True)
        keys = list(loaded_backends.keys())
        keys.sort()
        expect(keys).to.equal(['facebook', 'flickr', 'github'])

        backends = ()
        loaded_backends = load_backends(backends, force_load=True)
        expect(len(list(loaded_backends.keys()))).to.equal(0)
Example #5
0
    def test_load_backends(self):
        loaded_backends = load_backends(
            ('social.backends.github.GithubOAuth2',
             'social.backends.facebook.FacebookOAuth2',
             'social.backends.flickr.FlickrOAuth'),
            force_load=True)
        keys = list(loaded_backends.keys())
        keys.sort()
        self.assertEqual(keys, ['facebook', 'flickr', 'github'])

        backends = ()
        loaded_backends = load_backends(backends, force_load=True)
        self.assertEqual(len(list(loaded_backends.keys())), 0)
Example #6
0
 def setUp(self):
     HTTPretty.enable()
     Backend = module_member(self.backend_path)
     self.strategy = TestStrategy(TestStorage)
     self.complete_url = self.raw_complete_url.format(Backend.name)
     self.backend = Backend(self.strategy, redirect_uri=self.complete_url)
     self.strategy.set_settings({
         'SOCIAL_AUTH_AUTHENTICATION_BACKENDS':
         (self.backend_path,
          'social.tests.backends.test_broken.BrokenBackendAuth')
     })
     # Force backends loading to trash PSA cache
     load_backends(
         self.strategy.get_setting('SOCIAL_AUTH_AUTHENTICATION_BACKENDS'),
         force_load=True)
Example #7
0
def register(request):
    """
    Registration form.
    """
    if appsettings.REGISTRATION_CAPTCHA:
        form_class = CaptchaRegistrationForm
    else:
        form_class = RegistrationForm

    if request.method == "POST":
        form = form_class(request.POST)
        if form.is_valid() and appsettings.REGISTRATION_OPEN:
            return complete(request, "email")
    else:
        form = form_class()

    backends = set(load_backends(BACKENDS).keys())

    return render(
        request,
        "accounts/register.html",
        {
            "registration_email": "email" in backends,
            "registration_backends": backends - set(["email"]),
            "title": _("User registration"),
            "form": form,
        },
    )
Example #8
0
def register(request):
    '''
    Registration form.
    '''
    if appsettings.REGISTRATION_CAPTCHA:
        form_class = CaptchaRegistrationForm
    else:
        form_class = RegistrationForm

    if request.method == 'POST':
        form = form_class(request.POST)
        if form.is_valid() and appsettings.REGISTRATION_OPEN:
            return complete(request, 'email')
    else:
        form = form_class()

    backends = set(load_backends(BACKENDS).keys())

    return render(
        request,
        'accounts/register.html',
        {
            'registration_email': 'email' in backends,
            'registration_backends': backends - set(['email']),
            'title': _('User registration'),
            'form': form,
        }
    )
Example #9
0
def view_profile(request, user_id, **kwargs):
	query_set = User.objects.filter(id=user_id)
	if not query_set.exists():
		return view_profile(request, request.user.id, error_messages=['User with user_id='+str(user_id)+' could not be found.'])
	user = query_set[0]

	profile = None
	query_set = UserProfile.objects.filter(user=user)
	if not query_set.exists():
		profile = UserProfile()
		profile.user = user
		profile.save()
	else:
		profile = query_set[0]

	context_dict = {}

	if int(user_id) == int(request.user.id):
		context_dict = {
			'user_form': EditUserForm(initial=model_to_dict(user)),
			'profile_form': UserProfileForm(initial=model_to_dict(profile)),
			'available_backends': load_backends(settings.AUTHENTICATION_BACKENDS),
			'editing': 'editing' in kwargs and kwargs['editing'] == 'editing',
		}
	context_dict['disp_user'] = user
	context_dict['disp_user_is_sm'] = (user.is_superuser) or (Permission.objects.get(codename='site_manager') in user.user_permissions.all()) #user.has_perm('users.site_manager')

	if 'error_messages' in kwargs:
		context_dict['error_messages'] = kwargs['error_messages']

	return render(request, 'profile.html', context_dict)
Example #10
0
def weblate_login(request):
    '''
    Login handler, just wrapper around login.
    '''

    # Redirect logged in users to profile
    if request.user.is_authenticated():
        return redirect_profile()

    # Redirect if there is only one backend
    auth_backends = list(load_backends(BACKENDS).keys())
    if len(auth_backends) == 1 and auth_backends[0] != 'email':
        return redirect('social:begin', auth_backends[0])

    return auth_views.login(request,
                            template_name='accounts/login.html',
                            authentication_form=LoginForm,
                            extra_context={
                                'login_backends':
                                [x for x in auth_backends if x != 'email'],
                                'can_reset':
                                'email' in auth_backends,
                                'title':
                                _('Login'),
                            })
Example #11
0
 def get_context_data(self, **kwargs):
     context = super(RequireEmail, self).get_context_data(**kwargs)
     context['email_required'] = True
     context['backend'] = self.session['partial_pipeline']['backend']
     context['available_backends'] = \
         load_backends(settings.AUTHENTICATION_BACKENDS)
     return context
Example #12
0
def register(request):
    '''
    Registration form.
    '''
    if appsettings.REGISTRATION_CAPTCHA:
        form_class = CaptchaRegistrationForm
    else:
        form_class = RegistrationForm

    if request.method == 'POST':
        form = form_class(request.POST)
        if form.is_valid() and appsettings.REGISTRATION_OPEN:
            return complete(request, 'email')
    else:
        form = form_class()

    backends = load_backends(BACKENDS).keys()

    # Redirect if there is only one backend
    if len(backends) == 1 and backends[0] != 'email':
        return redirect('social:begin', backends[0])

    backends = set(backends)

    return render(
        request,
        'accounts/register.html',
        {
            'registration_email': 'email' in backends,
            'registration_backends': backends - set(['email']),
            'title': _('User registration'),
            'form': form,
        }
    )
Example #13
0
def index(request, template_name='index.html'):

    user = request.user
    print "User : "******"provider : ", provider
        social = user.social_auth.get(provider=provider)
        print "social.extra_data : ", social.extra_data
        access_token = social.extra_data['access_token']
        print "access_token", access_token

        # print "social_auth : ", user.social_auth
        # print "social_auth.values_list('provider') : ", user.social_auth.values_list('provider')
        # print "social_auth.values_list('extra_data') : ", user.social_auth.values_list('extra_data')
        # print "social_auth.provider : ", user.social_auth.provider
        # social = user.social_auth.get(provider='google')
        # print "social : ", social
        # print "social.extra_data['access_token'] : ", social.extra_data['access_token']

    context = {
        'available_backends': load_backends(settings.AUTHENTICATION_BACKENDS),
        'access_token': access_token,
    }

    return render(request, template_name, context)
Example #14
0
def context(**extra):
    """
    Adding default context to rendered page.
    """
    return dict({
        'available_backends': load_backends(settings.AUTHENTICATION_BACKENDS),
    }, **extra)
Example #15
0
def get_active_auth_strategies(settings):
    """Give the list of available social auth providers.
    Includes multiple instances if a provider can have multiple servers.
    This currently includes SAML, and eventually wordpress.
    TODO: Should replace the login_providers config variable"""
    all_backends = load_backends(
        settings.get('SOCIAL_AUTH_AUTHENTICATION_BACKENDS'))
    for backend_name in all_backends:

        def get_setting(name):
            return (settings.get(
                setting_name(SETTING_PREFIX, backend_name, name), None)
                    or settings.get(setting_name(backend_name, name), None))

        if backend_name == 'wordpress-oauth2':
            # TODO: This special case needs to be treated the same as saml asap.
            # Also: maybe check preferences
            yield backend_name
        elif backend_name == 'saml':
            # special case: Multiple IDPs
            idps = get_setting('ENABLED_IDPS') or {}
            for idp in idps.keys():
                yield 'saml:' + idp
        elif get_setting('key'):
            yield backend_name
Example #16
0
def register(request):
    """
    Registration form.
    """
    if appsettings.REGISTRATION_CAPTCHA:
        form_class = CaptchaRegistrationForm
    else:
        form_class = RegistrationForm

    if request.method == "POST":
        form = form_class(request.POST)
        if form.is_valid() and appsettings.REGISTRATION_OPEN:
            return complete(request, "email")
    else:
        form = form_class()

    backends = load_backends(BACKENDS).keys()

    # Redirect if there is only one backend
    if len(backends) == 1 and backends[0] != "email":
        return redirect("social:begin", backends[0])

    backends = set(backends)

    return render(
        request,
        "accounts/register.html",
        {
            "registration_email": "email" in backends,
            "registration_backends": backends - set(["email"]),
            "title": _("User registration"),
            "form": form,
        },
    )
Example #17
0
def weblate_login(request):
    '''
    Login handler, just wrapper around login.
    '''

    # Redirect logged in users to profile
    if request.user.is_authenticated():
        return redirect('profile')

    # Redirect if there is only one backend
    auth_backends = list(load_backends(BACKENDS).keys())
    if len(auth_backends) == 1 and auth_backends[0] != 'email':
        return redirect('social:begin', auth_backends[0])

    return auth_views.login(
        request,
        template_name='accounts/login.html',
        authentication_form=LoginForm,
        extra_context={
            'login_backends': [
                x for x in auth_backends if x != 'email'
            ],
            'can_reset': 'email' in auth_backends,
            'title': _('Login'),
        }
    )
Example #18
0
def register(request):
    '''
    Registration form.
    '''
    if appsettings.REGISTRATION_CAPTCHA:
        form_class = CaptchaRegistrationForm
    else:
        form_class = RegistrationForm

    if request.method == 'POST':
        form = form_class(request.POST)
        if form.is_valid() and appsettings.REGISTRATION_OPEN:
            return complete(request, 'email')
    else:
        form = form_class()

    backends = load_backends(BACKENDS).keys()

    # Redirect if there is only one backend
    if len(backends) == 1 and backends[0] != 'email':
        return redirect('social:begin', backends[0])

    backends = set(backends)

    return render(
        request, 'accounts/register.html', {
            'registration_email': 'email' in backends,
            'registration_backends': backends - set(['email']),
            'title': _('User registration'),
            'form': form,
        })
Example #19
0
def register(request):
    """
    Registration form.
    """
    if appsettings.REGISTRATION_CAPTCHA:
        form_class = CaptchaRegistrationForm
    else:
        form_class = RegistrationForm

    if request.method == "POST":
        form = form_class(request.POST)
        if form.is_valid() and appsettings.REGISTRATION_OPEN:
            return complete(request, "email")
    else:
        form = form_class()

    return render_to_response(
        "accounts/register.html",
        RequestContext(
            request,
            {
                "registration_backends": [x for x in load_backends(BACKENDS).keys() if x != "email"],
                "title": _("User registration"),
                "form": form,
            },
        ),
    )
Example #20
0
def register(request):
    '''
    Registration form.
    '''
    if appsettings.REGISTRATION_CAPTCHA:
        form_class = CaptchaRegistrationForm
    else:
        form_class = RegistrationForm

    if request.method == 'POST':
        form = form_class(request.POST)
        if form.is_valid() and appsettings.REGISTRATION_OPEN:
            # Ensure we do registration in separate session
            # not sent to client
            request.session.create()
            result = complete(request, 'email')
            request.session.save()
            request.session = None
            return result
    else:
        form = form_class()

    backends = set(load_backends(BACKENDS).keys())

    # Redirect if there is only one backend
    if len(backends) == 1 and 'email' not in backends:
        return redirect('social:begin', backends.pop())

    return render(
        request, 'accounts/register.html', {
            'registration_email': 'email' in backends,
            'registration_backends': backends - set(['email']),
            'title': _('User registration'),
            'form': form,
        })
Example #21
0
def reset_password(request):
    '''
    Password reset handling.
    '''
    if 'email' not in load_backends(BACKENDS).keys():
        messages.error(
            request,
            _('Can not reset password, email authentication is disabled!')
        )
        return redirect('login')

    if request.method == 'POST':
        form = ResetForm(request.POST)
        if form.is_valid():
            user = form.cleaned_data['email']
            user.set_unusable_password()
            user.save()
            if not request.session.session_key:
                request.session.create()
            request.session['password_reset'] = True
            return complete(request, 'email')
    else:
        form = ResetForm()

    return render(
        request,
        'accounts/reset.html',
        {
            'title': _('Password reset'),
            'form': form,
        }
    )
Example #22
0
 def setUp(self):
     HTTPretty.enable()
     self.backend = module_member(self.backend_path)
     self.strategy = TestStrategy(self.backend, TestStorage)
     self.name = self.backend.name.upper().replace("-", "_")
     self.complete_url = self.strategy.build_absolute_uri(self.raw_complete_url.format(self.backend.name))
     backends = (self.backend_path, "social.tests.backends.test_broken.BrokenBackendAuth")
     self.strategy.set_settings({"SOCIAL_AUTH_AUTHENTICATION_BACKENDS": backends})
     self.strategy.set_settings(self.extra_settings())
     # Force backends loading to trash PSA cache
     load_backends(backends, force_load=True)
     User.reset_cache()
     TestUserSocialAuth.reset_cache()
     TestNonce.reset_cache()
     TestAssociation.reset_cache()
     TestCode.reset_cache()
Example #23
0
def reset_password(request):
    '''
    Password reset handling.
    '''
    if 'email' not in load_backends(BACKENDS).keys():
        messages.error(
            request,
            _('Can not reset password, email authentication is disabled!'))
        return redirect('login')

    if request.method == 'POST':
        form = ResetForm(request.POST)
        if form.is_valid():
            # Force creating new session
            request.session.create()
            if request.user.is_authenticated():
                logout(request)

            request.session['password_reset'] = True
            return complete(request, 'email')
    else:
        form = ResetForm()

    return render(request, 'accounts/reset.html', {
        'title': _('Password reset'),
        'form': form,
    })
Example #24
0
def reset_password(request):
    """
    Password reset handling.
    """
    if "email" not in load_backends(BACKENDS).keys():
        messages.error(request, _("Can not reset password, email authentication is disabled!"))
        return redirect("login")

    if request.method == "POST":
        form = ResetForm(request.POST)
        if form.is_valid():
            user = form.cleaned_data["email"]
            user.set_unusable_password()
            user.save()

            # Force creating new session
            request.session.create()
            if request.user.is_authenticated():
                logout(request)

            request.session["password_reset"] = True
            return complete(request, "email")
    else:
        form = ResetForm()

    return render(request, "accounts/reset.html", {"title": _("Password reset"), "form": form})
Example #25
0
def user_profile(request):

    profile = request.user.get_profile()

    if request.method == "POST":
        # Read params
        form = ProfileForm(request.POST, instance=profile)
        subscriptionform = SubscriptionForm(request.POST, instance=profile)
        userform = UserForm(request.POST, instance=request.user)
        if appsettings.DEMO_SERVER and request.user.username == "demo":
            messages.warning(request, _("You can not change demo profile on the demo server."))
            return redirect("profile")

        if form.is_valid() and userform.is_valid() and subscriptionform.is_valid():
            # Save changes
            form.save()
            subscriptionform.save()
            userform.save()

            # Change language
            set_lang(request.user, request=request, user=request.user)

            # Redirect after saving (and possibly changing language)
            response = redirect("profile")

            # Set language cookie and activate new language (for message below)
            lang_code = profile.language
            response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code)
            translation.activate(lang_code)

            messages.info(request, _("Your profile has been updated."))

            return response
    else:
        form = ProfileForm(instance=profile)
        subscriptionform = SubscriptionForm(instance=profile)
        userform = UserForm(instance=request.user)

    social = request.user.social_auth.all()
    social_names = [assoc.provider for assoc in social]
    new_backends = [x for x in load_backends(BACKENDS).keys() if x == "email" or x not in social_names]

    response = render_to_response(
        "accounts/profile.html",
        RequestContext(
            request,
            {
                "form": form,
                "userform": userform,
                "subscriptionform": subscriptionform,
                "profile": profile,
                "title": _("User profile"),
                "licenses": Project.objects.exclude(license=""),
                "associated": social,
                "new_backends": new_backends,
            },
        ),
    )
    response.set_cookie(settings.LANGUAGE_COOKIE_NAME, profile.language)
    return response
Example #26
0
def loginpage(request):
    """
    If a user wants to login, he opens the url named `cas-login`, which renders the cas_loginpage.html.
    """

    logging.info("Start login for accessing a base")
    if request.method == "GET":
        service = request.GET['service']
        m = re.match(r".*/userland/(?P<username>.*?)/(?P<basename>.*?)/",
                     service)
        if m:
            # we received an URI
            username = m.group('username')
            basename = m.group('basename')
            Base.objects.get(name=basename, user__username=username)
            request.session['next'] = service
        else:
            # we received an host, project is proxed
            host = urlparse(service).netloc
            base = Base.objects.get(frontend_host=host)
            username = base.user.username
            basename = base.name
            request.session['next'] = "https://%s" % host

        if request.user.is_authenticated:
            user = request.user

        logger.info("Next: " + request.session['next'])

        return render(
            request, 'aaa/cas_loginpage.html', {
                'user':
                user,
                'userland':
                username,
                'basename':
                basename,
                'available_backends':
                load_backends(settings.AUTHENTICATION_BACKENDS)
            })

    elif request.method == "POST":
        username = request.POST['username']
        password = request.POST['password']
        service = request.POST['service']
        user = authenticate(username=username,
                            password=password,
                            redirect_uri="/cas/login/")
        if user is not None:
            if user.is_active:
                auth_login(request, user)
                ticket = Ticket.objects.create_ticket(user=user)
                return redirect(service + "?ticket=%s" % ticket.ticket)
            else:
                return redirect('/disabled')
        else:
            # Return an 'invalid login' error message.
            #...
            return redirect('/')
 def setUp(self):
     HTTPretty.enable()
     Backend = module_member(self.backend_path)
     self.strategy = TestStrategy(TestStorage)
     self.complete_url = self.raw_complete_url.format(Backend.name)
     self.backend = Backend(self.strategy, redirect_uri=self.complete_url)
     self.strategy.set_settings({
         'SOCIAL_AUTH_AUTHENTICATION_BACKENDS': (
             self.backend_path,
             'social.tests.backends.test_broken.BrokenBackendAuth'
         )
     })
     # Force backends loading to trash PSA cache
     load_backends(
         self.strategy.get_setting('SOCIAL_AUTH_AUTHENTICATION_BACKENDS'),
         force_load=True
     )
Example #28
0
def signin(req):
    from astrometry.net import settings
    from social.backends.utils import load_backends
    ctxt = RequestContext(req)
    ctxt.update({
            'available_backends': load_backends(settings.AUTHENTICATION_BACKENDS)
            })
    return render_to_response('signin.html', ctxt)
Example #29
0
    def setUp(self):
        HTTPretty.enable()
        Backend = module_member(self.backend_path)
        self.strategy = views.load_strategy()
        self.backend = Backend(self.strategy, redirect_uri=self.complete_url)
        self.name = self.backend.name.upper().replace('-', '_')
        self.complete_url = self.strategy.build_absolute_uri(
            self.raw_complete_url.format(self.backend.name))
        backends = (self.backend_path, )
        load_backends(backends, force_load=True)

        user_data_body = json.loads(self.user_data_body)
        self.email = '*****@*****.**'
        user_data_body['email'] = self.email
        self.user_data_body = json.dumps(user_data_body)

        self.do_rest_login()
Example #30
0
 def setUp(self):
     HTTPretty.enable()
     self.backend = module_member(self.backend_path)
     self.complete_url = '/complete/{0}/'.format(self.backend.name)
     self.strategy = TestStrategy(self.backend, TestStorage,
                                  redirect_uri=self.complete_url)
     self.strategy.set_settings({
         'SOCIAL_AUTH_AUTHENTICATION_BACKENDS': (
             self.backend_path,
             'tests.backends.broken_test.BrokenBackendAuth'
         )
     })
     # Force backends loading to trash PSA cache
     load_backends(
         self.strategy.get_setting('SOCIAL_AUTH_AUTHENTICATION_BACKENDS'),
         force_load=True
     )
Example #31
0
def context(**extra):
    return dict(
        {
            'plus_id': getattr(settings, 'SOCIAL_AUTH_GOOGLE_PLUS_KEY', None),
            'plus_scope': ' '.join(GooglePlusAuth.DEFAULT_SCOPE),
            'available_backends': load_backends(
                settings.AUTHENTICATION_BACKENDS)
        }, **extra)
Example #32
0
def context(**extra):
    return dict(
        {
            'facebook_id': getattr(settings, 'SOCIAL_AUTH_FACEBOOK_KEY', None),
            'facebook_scope': ''.join(FacebookOAuth2.DEFAULT_SCOPE),
            'available_backends': load_backends(
                settings.AUTHENTICATION_BACKENDS)
        }, **extra)
Example #33
0
def loginpage_userland(request, username, base):
    base = get_object_or_404(Base, name=base)
    return render(
        request, 'aaa/cas_loginpage.html', {
            'userland': username,
            'base': base.name,
            'available_backends': load_backends(
                settings.AUTHENTICATION_BACKENDS)
        })
Example #34
0
def template_context_processor(request):
    login_methods = []
    from social.apps.django_app.utils import BACKENDS
    from social.backends import utils
    icon_map = {"google": "googleplus"}
    return {
        "login_backends": [(name, icon_map.get(name, name))
                           for name in utils.load_backends(BACKENDS)]
    }
Example #35
0
def context(**extra):
    '''
    python-social-auth 中用于第三方注册携带信息的重写了的 context
    '''
    return dict({
        'plus_id': getattr(settings, 'SOCIAL_AUTH_GOOGLE_PLUS_KEY', None),
        'plus_scope': ' '.join(GooglePlusAuth.DEFAULT_SCOPE),
        'available_backends': load_backends(settings.AUTHENTICATION_BACKENDS)
    }, **extra)
Example #36
0
def signin(req):
    from astrometry.net import settings
    from social.backends.utils import load_backends
    ctxt = RequestContext(req)
    ctxt.update({
        'available_backends':
        load_backends(settings.AUTHENTICATION_BACKENDS)
    })
    return render_to_response('signin.html', ctxt)
Example #37
0
def context(**extra):
    return dict(
        {
            "plus_id": getattr(settings, "SOCIAL_AUTH_GOOGLE_PLUS_KEY", None),
            "plus_scope": " ".join(GooglePlusAuth.DEFAULT_SCOPE),
            "available_backends": load_backends(settings.AUTHENTICATION_BACKENDS),
        },
        **extra
    )
    def setUp(self):
        HTTPretty.enable()
        Backend = module_member(self.backend_path)
        self.strategy = load_strategy()
        self.backend = Backend(self.strategy, redirect_uri=self.complete_url)
        self.name = self.backend.name.upper().replace('-', '_')
        self.complete_url = self.strategy.build_absolute_uri(
            self.raw_complete_url.format(self.backend.name)
        )
        backends = (self.backend_path, )
        load_backends(backends, force_load=True)

        user_data_body = json.loads(self.user_data_body)
        self.email = '*****@*****.**'
        user_data_body['email'] = self.email
        self.user_data_body = json.dumps(user_data_body)

        self.do_rest_login()
Example #39
0
def context(**extra):
    """
    Adding default context to rendered page.
    """
    return dict(
        {
            'available_backends': load_backends(
                settings.AUTHENTICATION_BACKENDS),
        }, **extra)
Example #40
0
 def setUp(self):
     HTTPretty.enable()
     self.backend = module_member(self.backend_path)
     name = self.backend.name
     self.complete_url = self.raw_complete_url.format(name)
     self.strategy = TestStrategy(self.backend, TestStorage)
     name = name.upper().replace('-', '_')
     self.strategy.set_settings({
         'SOCIAL_AUTH_' + name + '_KEY':
         'a-key',
         'SOCIAL_AUTH_' + name + '_SECRET':
         'a-secret-key',
         'SOCIAL_AUTH_AUTHENTICATION_BACKENDS':
         (self.backend_path, 'tests.backends.broken_test.BrokenBackendAuth')
     })
     # Force backends loading to trash PSA cache
     load_backends(
         self.strategy.get_setting('SOCIAL_AUTH_AUTHENTICATION_BACKENDS'),
         force_load=True)
Example #41
0
def book(request):
	queryset = request.GET
	ticket_id = queryset.get('leg_id')
	user = request.user
	seat = random.choice(["WINDOW", "AISLE"])
	ticket = Ticket(ticket_id=ticket_id, owner=user, seat=seat)
	ticket.save()
	return render(request, 'pages/flights.html',
		              {'available_backends': load_backends(settings.AUTHENTICATION_BACKENDS),
		               'messages': ["The ticket was successfully booked", ]})
Example #42
0
 def setUp(self):
     HTTPretty.enable()
     self.backend = module_member(self.backend_path)
     self.strategy = TestStrategy(self.backend, TestStorage)
     self.name = self.backend.name.upper().replace('-', '_')
     self.complete_url = self.strategy.build_absolute_uri(
         self.raw_complete_url.format(self.backend.name))
     backends = (self.backend_path,
                 'social.tests.backends.test_broken.BrokenBackendAuth')
     self.strategy.set_settings(
         {'SOCIAL_AUTH_AUTHENTICATION_BACKENDS': backends})
     self.strategy.set_settings(self.extra_settings())
     # Force backends loading to trash PSA cache
     load_backends(backends, force_load=True)
     User.reset_cache()
     TestUserSocialAuth.reset_cache()
     TestNonce.reset_cache()
     TestAssociation.reset_cache()
     TestCode.reset_cache()
Example #43
0
def home(req):
    upload_form = UploadCampaignForm(req.user)
    all_messages = json.dumps([x.message for x in messages.get_messages(req)])
    available_backends = load_backends(['social.backends.instagram.InstagramOAuth2'])
    if req.user.is_authenticated():
        instagram_acct = UserSocialAuth.objects.filter(user=req.user, provider='instagram')
    else:
        instagram_acct = None

    return render(req, "index.html", locals())
Example #44
0
def search(request):
	client = httplib2.Http()
	headers = {
		'Content-Type': 'application/x-www-form-urlencoded',
		'Accept': 'application/json'
	}

	body = {}
	endpoint = settings.SKY_SCANNER_API_URL

	body["apiKey"] = settings.SKY_SCANNER_API_KEY
	queryset = request.GET

	if not queryset.get('origin'):
		return render(request, 'pages/flights.html',
		              {'available_backends': load_backends(settings.AUTHENTICATION_BACKENDS)})

	body["country"] = queryset.get('country', 'US')
	body["currency"] = queryset.get('currency', 'USD')
	body["locale"] = queryset.get('currency', 'en-US')
	body["originplace"] = queryset.get('origin', 'SFO')
	body["destinationplace"] = queryset.get('destination', 'JFK')
	body["outbounddate"] = queryset.get('outbounddate', '2015-11-25')
	if body["outbounddate"].split('/')[0]:
		sep = body["outbounddate"].split('/')
		body["outbounddate"] = "-".join([sep[2]] + sep[:2])

	body["locationschema"] = queryset.get('locationschema', 'Iata')
	body["adults"] = queryset.get('adults', '1')

	response, content = client.request(endpoint, "POST", headers=headers, body=urllib.urlencode(body))

	second_endpoint = response['location'] + '?apiKey=' + body["apiKey"]

	response, content = client.request(second_endpoint, "GET")

	context = clean_sky_scanner_data(json.loads(content))
	context['query'] = body

	return render(request, 'pages/flights.html',
		              {'available_backends': load_backends(settings.AUTHENTICATION_BACKENDS),
		               'context': context})
Example #45
0
 def setUp(self):
     HTTPretty.enable()
     self.backend = module_member(self.backend_path)
     name = self.backend.name.upper().replace('-', '_')
     self.strategy = TestStrategy(self.backend, TestStorage)
     self.complete_url = self.strategy.build_absolute_uri(
         '/complete/{0}'.format(name)
     )
     self.strategy.set_settings({
         'SOCIAL_AUTH_{0}_FORM_URL'.format(name): '/login/{0}'.format(name),
         'SOCIAL_AUTH_AUTHENTICATION_BACKENDS': (
             self.backend_path,
             'social.tests.backends.broken_test.BrokenBackendAuth'
         )
     })
     # Force backends loading to trash PSA cache
     load_backends(
         self.strategy.get_setting('SOCIAL_AUTH_AUTHENTICATION_BACKENDS'),
         force_load=True
     )
Example #46
0
def build_context(request):
    urls = {
        'login_page': reverse('login'),
        'logout': reverse('logout'),
    }
    return {'ctx': {
        'auth_backends': list(load_backends(settings.AUTHENTICATION_BACKENDS).keys()),
        'urls': urls,
        'DEBUG': settings.DEBUG,
        # 'MEDIA_HASH': settings.MEDIA_HASH,
    }}
Example #47
0
def context(**extra):
    return dict(
        {
            # 'plus_id': getattr(settings, 'SOCIAL_AUTH_GOOGLE_PLUS_KEY', None),
            # 'plus_scope': ' '.join(GooglePlusAuth.DEFAULT_SCOPE),
            'available_backends': load_backends(
                settings.AUTHENTICATION_BACKENDS),
            'PLANET_VERSION': TUMBO_VERSION,
            'TUMBO_STATIC_CACHE_SECONDS': settings.TUMBO_STATIC_CACHE_SECONDS
        },
        **extra)
Example #48
0
 def setUp(self):
     HTTPretty.enable()
     self.backend = module_member(self.backend_path)
     name = self.backend.name
     self.complete_url = self.raw_complete_url.format(name)
     self.strategy = TestStrategy(self.backend, TestStorage)
     name = name.upper().replace('-', '_')
     self.strategy.set_settings({
         'SOCIAL_AUTH_' + name + '_KEY': 'a-key',
         'SOCIAL_AUTH_' + name + '_SECRET': 'a-secret-key',
         'SOCIAL_AUTH_AUTHENTICATION_BACKENDS': (
             self.backend_path,
             'social.tests.backends.broken_test.BrokenBackendAuth'
         )
     })
     # Force backends loading to trash PSA cache
     load_backends(
         self.strategy.get_setting('SOCIAL_AUTH_AUTHENTICATION_BACKENDS'),
         force_load=True
     )
Example #49
0
def home(req):
    upload_form = UploadCampaignForm(req.user)
    all_messages = json.dumps([x.message for x in messages.get_messages(req)])
    available_backends = load_backends(
        ['social.backends.instagram.InstagramOAuth2'])
    if req.user.is_authenticated():
        instagram_acct = UserSocialAuth.objects.filter(user=req.user,
                                                       provider='instagram')
    else:
        instagram_acct = None

    return render(req, "index.html", locals())
Example #50
0
 def get_context_data(self, **kwargs):
     context = super(AvailableBackendsMixin,
                     self).get_context_data(**kwargs)
     return dict(
         {
             'plus_id':
             getattr(settings, 'SOCIAL_AUTH_GOOGLE_PLUS_KEY', None),
             'plus_scope':
             ' '.join(GooglePlusAuth.DEFAULT_SCOPE),
             'available_backends':
             load_backends(settings.AUTHENTICATION_BACKENDS)
         }, **context)
    def __init__(self, *args, **kwargs):
        backends_by_name = load_backends(settings.AUTHENTICATION_BACKENDS)

        self.social_state_keys = []
        self.auth_complete_paths = []
        for backend_name in backends_by_name.keys():
            self.social_state_keys.append("{}_state".format(backend_name))

            self.auth_complete_paths.append(
                reverse("social:complete", kwargs={'backend': backend_name}))

        super(DjangoTenantStrategy, self).__init__(*args, **kwargs)
Example #52
0
def forms(request):
    return {
        'reg_form': render_to_string(
            'forms/form.html', {'form': RegUserForm()}
        ),
        'login_form': render_to_string(
            'forms/form.html', {'form': LoginForm()}
        ),
        'plus_id': getattr(settings, 'SOCIAL_AUTH_GOOGLE_PLUS_KEY', None),
        'plus_scope': ' '.join(GooglePlusAuth.DEFAULT_SCOPE),
        'available_backends': load_backends(settings.AUTHENTICATION_BACKENDS),
    }
Example #53
0
    def get_context_data(self, **kwargs):
        """Ensure that 'next' gets passed along"""
        LOGGER.debug('socialprofile.views.SelectAuthView.get_context_data')

        next_url = self.request.GET.get(REDIRECT_FIELD_NAME, DEFAULT_RETURNTO_PATH)

        context = super(SelectAuthView, self).get_context_data(**kwargs)
        context['next_param'] = REDIRECT_FIELD_NAME
        context['next_url'] = next_url
        context['plus_id'] = getattr(settings, 'SOCIAL_AUTH_GOOGLE_PLUS_KEY', None)
        context['plus_scope'] = ' '.join(GooglePlusAuth.DEFAULT_SCOPE)
        context['available_backends'] = load_backends(settings.AUTHENTICATION_BACKENDS)
        return context
Example #54
0
def pals(request):
	queryset = request.GET
	ticket_id = queryset.get('leg_id')

	tickets = Ticket.objects.filter(ticket_id=ticket_id)

	users = []
	for ticket in tickets:
		owner = ticket.owner
		users.append(owner)
	return render(request, 'pages/pals.html',
		              {'available_backends': load_backends(settings.AUTHENTICATION_BACKENDS),
		               'pals': users})
Example #55
0
def similar_backends(context):
    backends = load_backends(settings.AUTHENTICATION_BACKENDS)
    user = context.get('user')

    secondary_users = SecondaryEmail.objects.filter(email=user.email).exclude(
        user=user)
    similar_users = defaultdict(list)

    for secondary in secondary_users:
        similar_users[secondary.user].append(
            (secondary.provider.provider,
             backends.get(secondary.provider.provider)))

    similar_users = dict(similar_users)
    context['similar_users'] = similar_users
    return ''
Example #56
0
File: context.py Project: ofw/pong
def build_context(request):
    urls = {
        'login_page': reverse('login'),
        'logout': reverse('logout'),
    }
    return {
        'ctx': {
            'auth_backends':
            list(load_backends(settings.AUTHENTICATION_BACKENDS).keys()),
            'urls':
            urls,
            'DEBUG':
            settings.DEBUG,
            # 'MEDIA_HASH': settings.MEDIA_HASH,
        }
    }
Example #57
0
def forms(request):
    plp_url = settings.PLP_URL
    # мы хотим, чтобы url PLP в шаблонах был наверняка со слэшом в конце
    if settings.PLP_URL[-1] != '/':
        plp_url = "{}/".format(plp_url)
    return {
        'login_form': render_to_string('forms/form.html',
                                       {'form': LoginForm()}),
        'plus_id': getattr(settings, 'SOCIAL_AUTH_GOOGLE_PLUS_KEY', None),
        'plus_scope': ' '.join(GooglePlusAuth.DEFAULT_SCOPE),
        'available_backends': load_backends(settings.AUTHENTICATION_BACKENDS),
        'plp_url': plp_url,
        'social_facebook': getattr(settings, 'SOCIAL_ACCOUNT_FACEBOOK', '#'),
        'social_vk': getattr(settings, 'SOCIAL_ACCOUNT_VK', '#'),
        'social_ok': getattr(settings, 'SOCIAL_ACCOUNT_OK', '#'),
        'social_instagram': getattr(settings, 'SOCIAL_ACCOUNT_INSTAGRAM', '#'),
        'social_twitter': getattr(settings, 'SOCIAL_ACCOUNT_TWITTER', '#'),
    }
Example #58
0
def weblate_login(request):
    '''
    Login handler, just wrapper around login.
    '''

    # Redirect logged in users to profile
    if request.user.is_authenticated():
        return redirect('profile')

    return auth_views.login(
        request,
        template_name='accounts/login.html',
        authentication_form=LoginForm,
        extra_context={
            'login_backends':
            [x for x in load_backends(BACKENDS).keys() if x != 'email'],
            'title':
            _('Login'),
        })
Example #59
0
def custom_login(request):
    """
    Custom login to integrate social auth and default login.
    """
    username = password = ''
    logout(request)
    kwargs = dict(
        available_backends=load_backends(settings.AUTHENTICATION_BACKENDS))
    if request.POST:
        params = request.POST
        username = request.POST['username']
        password = request.POST['password']

        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                return redirect(request.POST.get('next', '/ct/'))
    else:
        params = request.GET
    if 'next' in params:  # must pass through for both GET or POST
        kwargs['next'] = params['next']
    return render_to_response('psa/custom_login.html',
                              context_instance=RequestContext(request, kwargs))