def register_loginza_user(uid, provider, defaults, request): """ Register user in the system from Loginza OpenID :rtype: Profile """ # Check if user already exists but uses different OpenID if 'email' in defaults: try: user = Profile.objects.get(email=defaults['email']) except Profile.DoesNotExist: pass else: user = authenticate(email=user.email) auth_login(request, user) return user user, created = Profile.objects.get_or_create(uid=uid, provider=provider, is_active=True, defaults=defaults) if created: user.set_unusable_password() user.save() transfer_objects(request.user, user) user = authenticate(uid=uid, provider=provider) if user.is_active: auth_login(request, user) return user
def confirm(request, activation_key): if not request.user.is_guest(): return HttpResponseRedirect('/') user = get_object_or_404(Profile, activation_key=activation_key) # Activate then login user if not user.is_active: user.is_active = True user.save() transfer_objects(request.user, user) user = authenticate(email=user.email) auth_login(request, user) return HttpResponseRedirect(user.get_register_redirect())