Beispiel #1
0
 def post(self):
     """
     Try to authenticate the user and log the user if successful
     """
     User = self.get_user_model()
     form = LoginForm(TornadoMultiDict(self))
     if form.validate():
         user = User.authenticate(form.email.data, form.password.data)
         if user:
             if options.require_activation and not user.active:
                 self.flash(
                     _("User not activated yet, please activate your\
                         account"
                     ), "warning"
                 )
                 self.redirect(
                     self.reverse_url("contrib.auth.activation_resend")
                 )
                 return
             self.set_secure_cookie("user", unicode(user.id))
             login_success.send(self, user=user)
             self.flash(_("Welcome back %(name)s", name=user.name), 'info')
             self.redirect(
                 self.get_argument('next', None) or \
                     self.reverse_url("home")
             )
             return
         login_failure.send(self)
         self.flash(_("The email or password is invalid"), 'error')
     self.render('user/login.html', login_form=form)
Beispiel #2
0
    def _on_login(self, user_data):
        """
        Callback function to handle facebook response
        """
        User = self.get_user_model()
        logger.info(user_data)

        if not user_data:
            login_failure.send(self)
            self.flash(_("Login using Facebook failed, please try again"))
            self.redirect(self.application.reverse_url("contrib.auth.login"))
            self.finish()


        user = User.objects(
            Q(facebook_id=int(user_data['id'])) | Q(email=user_data['email'])
        ).first()

        if user:
            self.flash(_("Welcome back %(name)s", name=user.name), 'info')
            if not user.facebook_id:
                user.facebook_id = user_data['id']
                user.facebook_picture = user_data['picture']
                user.facebook_username = user_data['username']
                user.facebook_link = user_data['link']
                user.save()
                self.flash(
                    _("Your facebook account is now connected to your account")
                )
        else:
            user = User(
                facebook_id = user_data['id'],
                facebook_picture = user_data['picture'],
                facebook_username = user_data['username'],
                facebook_link = user_data['link'],
                name = user_data['name'],
                email = user_data['email']
                )
            user.save()
            self.flash(
                _("Thank you for registering %(name)s", name=user.name)
            )

        self.set_secure_cookie("user", unicode(user.id))
        login_success.send(self, user=user)

        self.redirect(
            self.get_argument('next', None) or \
                self.application.reverse_url("home")
        )
Beispiel #3
0
    def _on_auth(self, user_data):
        """Call back handler for twitter authentication"""
        User = self.get_user_model()
        logger.info(user_data)

        if not user_data:
            login_failure.send(self)
            self.flash(_("Login using Twitter failed, please try again"))
            self.redirect(self.application.reverse_url("contrib.auth.login"))
            self.finish()

        logging.info(user_data)

        user = User.objects(twitter_username=user_data['username']).first()
        if user:
            self.flash(_("Welcome back %(name)s", name=user.name), 'info')
        else:
            user = User(
                name = user_data['name'],
                twitter_id = user_data['id_str'],
                twitter_username = user_data['username'],
                twitter_profile_picture = user_data['profile_image_url_https'],
                twitter_description = user_data['description'],
                )
            user.save()
            self.flash(
                _("Thank you for registering %(name)s", name=user.name)
            )

        self.set_secure_cookie("user", unicode(user.id))
        login_success.send(self, user=user)

        # Finally redirect to the home page once the user has been created
        self.redirect(
            self.get_argument('next', None) or \
                self.application.reverse_url("home")
        )
Beispiel #4
0
    def _on_auth(self, user_data):
        """
        Callback Function
        """
        User = self.get_user_model()
        logger.info(user_data)

        if not user_data:
            login_failure.send(self)
            self.flash(_("Login using Google failed, please try again"))
            self.redirect(self.application.reverse_url("contrib.auth.login"))
            self.finish()

        logger.info(user_data)

        user = User.objects(email=user_data['email']).first()
        if user:
            self.flash(_("Welcome back %(name)s", name=user.name), 'info')
        else:
            user = User(
                name = user_data['name'],
                email = user_data['email'],
                )
            user.save()
            self.flash(
                _("Thank you for regsitering %(name)s", name=user.name)
            )

        self.set_secure_cookie("user", unicode(user.id))
        login_success.send(self, user=user)

        # Finally issue a redirect if the login was successful
        self.redirect(
            self.get_argument('next', None) or \
                self.application.reverse_url("home")
        )