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()
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)
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)
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)
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)
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)
def _is_next_in_url(): """""" if request.method == 'GET' and request.args.get('next'): UserSession.add_next_url(request.args.get('next'))
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)
def _gen_login_token(self): """Generate a secure login token""" UserSession.add_value_to_session('login_token', gen_id())
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)
def _retreive_user_info(): """A helper function that returns the user object""" return User.get_account_by_email(UserSession.get_value_by_key("email"))