예제 #1
0
def _redirect_user_to_url_in_next_if_found_or_to_blog_creation_page():
    """"""

    if UserSession.get_value_by_key('next'):
        next = UserSession.get_value_by_key('next')
        UserSession.remove_next_url()
        return redirect(next)
    return _redirect_user_to_blog_creation_page()
예제 #2
0
def login():
    """Allows the user to login to the application using the GUI"""

    form, error = LoginForm(), False

    _is_next_in_url()

    if UserSession.get_login_token():
        return _redirect_user_to_blog_creation_page()

    elif form.validate_on_submit():

        user = User.get_account_by_username(username=form.username.data)

        if user:
            email_status = user.get_email_confirmed_status()

            if email_status == 'EMAIL_CONFIRMED':

                if user.is_login_valid(password=form.password.data):
                    user.login()
                    return _redirect_user_to_url_in_next_if_found_or_to_blog_creation_page(
                    )

                error = _display_error_msg()

            else:
                error = _display_error_msg(email_status)
        else:
            error = _display_error_msg()

    return render_template("login/login.html", form=form, error=error)
예제 #3
0
def logout():
    """logs the user out of the application"""

    UserSession.remove_username()
    UserSession.remove_value_by_key('admin')
    UserSession.remove_value_by_key('login_token')
    return redirect(request.referrer)
예제 #4
0
def forgotten_password():

    form = ResetForgottenPassword()

    if UserSession.get_login_token():
        return redirect(url_for("blogs_app.blog"))
    elif form.validate_on_submit():

        user = User.get_account_by_email(form.email.data)

        if user:
            user.send_forgotten_password_code()
        return redirect(url_for('password_app.reset_password_msg'))
    return render_template('password/forgotten_password.html', form=form)
예제 #5
0
def register_user():
    """Register user to the application from the GUI register page"""

    form, error = RegistrationForm(), False

    if UserSession.get_login_token():
        return redirect(url_for("blogs_app.my_blog"))
    elif form.validate_on_submit():
        user = User.extract_web_form(form)
        user.send_registration_code()
        return redirect(url_for('registration_app.confirm_email_page'))

    return render_template('registrations/register.html',
                           form=form,
                           error=error)
예제 #6
0
 def __init__(self,
              child_blog_id,
              child_post_id,
              user_id,
              title,
              post,
              publish_date,
              post_live,
              _id=None,
              post_img=None):
     self.child_post_id = child_post_id
     self.child_blog_id = child_blog_id
     self.user_id = user_id
     self.title = title
     self.post = post
     self.post_img = post_img
     self.post_live = post_live
     self.publish_date = publish_date
     self.author = UserSession.get_username()
     self._id = _id if _id else gen_id()
     self.Comment = Comment(self.child_blog_id, self.user_id, child_post_id)
예제 #7
0
def _is_next_in_url():
    """"""
    if request.method == 'GET' and request.args.get('next'):
        UserSession.add_next_url(request.args.get('next'))
예제 #8
0
 def decorated_function(*args, **kwargs):
     if UserSession.get_value_by_key(key) is None:
         if logging_required:
             return redirect(url_for('login_app.login', next=request.url))
         abort(403)
     return f(*args, **kwargs)
예제 #9
0
 def _gen_login_token(self):
     """Generate a secure login token"""
     UserSession.add_value_to_session('login_token', gen_id())
예제 #10
0
    def _add_username_email_and_admin_to_secure_user_session(self):
        """Adds the username and admin name to the user's secure session"""

        UserSession.add_username(self.username)
        UserSession.add_value_to_session('email', self.email.lower())
        UserSession.add_value_to_session('admin', True)
예제 #11
0
 def _retreive_user_info():
     """A helper function that returns the user object"""
     return User.get_account_by_email(UserSession.get_value_by_key("email"))