def route_message_replies(username, postid): lang = Language(get_user_lang(request.headers, current_user)) if current_user.is_authenticated and current_user.is_banned(): return render_template("errors/banned.html", lang=lang) user = get_user_by_name(username) if user == None: return abort(404) if user.is_banned() and (not current_user.is_authenticated or not current_user.has_admin_rights()): return redirect(url_for("route_profile", username=username)) msg = get_message_by_id(postid) if msg == None: return abort(404) msgs, next_page, prev_page = compute_pages(request.args, get_message_replies, msg, current_user) return render_template("message/viewreplies.html", lang=lang, user=user, msgs=msgs, render_message=bind1(render_message, lang), prev_page=prev_page, next_page=next_page, has_before="b" in request.args or "a" in request.args, username=username, postid=postid)
def route_message(username, postid): lang = Language(get_user_lang(request.headers, current_user)) if current_user.is_authenticated and current_user.is_banned(): return render_template("errors/banned.html", lang=lang) user = get_user_by_name(username) if user == None: return abort(404) if user.is_banned() and (not current_user.is_authenticated or not current_user.has_admin_rights()): return redirect(url_for("route_profile", username=username)) msg = get_message_by_id(postid) if msg == None: return abort(404) if user.get_id() != msg.get_author_id(): return abort(404) reply = None if msg.reply != None: reply = get_message_by_id(msg.reply) return render_template( "message/viewmessage.html", lang=lang, user=user, msg=msg, reply=reply, reply_id=msg.reply, is_reply=msg.is_reply, render_message=bind1(render_message, lang), username=username, postid=postid, important_replies=msg.get_most_important_message_replies(current_user))
def login(username, password): # find user by username obj = get_user_by_name(username=username[:32]) # if no user with this username if obj == None: return (None, "login.invalid") # if password is incorrect if not obj.password_ok(password[:256]): return (None, "login.invalid") # return LoginUser object return (obj, None)
def register(username, password, verify): if len(username) < 4 or len(username) > 20: return (None, "register.error.invalid_username_length") if len(password) < 8 or len(password) > 256: return (None, "register.error.invalid_password_length") if password != verify: return (None, "register.error.password_not_match") username = username[:20] if get_user_by_name(username=username) != None: return (None, "register.error.username_taken") # validate username if not validate_username(username): return (None, "register.error.invalid_username") user = application.models.User(username, "", password) user.add_itself() return (user, None)
def route_profile(username): lang = Language(get_user_lang(request.headers, current_user)) if current_user.is_authenticated and current_user.is_banned(): return render_template("errors/banned.html", lang=lang) user = get_user_by_name(username) if user == None: return abort(404) msgs, next_page, prev_page = compute_pages(request.args, get_user_messages, user, current_user) return render_template("profile/profile.html", lang=lang, user=user, msgs=msgs, render_message=bind1(render_message, lang), prev_page=prev_page, next_page=next_page, has_before="b" in request.args or "a" in request.args)
def route_profile_followers(username): lang = Language(get_user_lang(request.headers, current_user)) if current_user.is_authenticated and current_user.is_banned(): return render_template("errors/banned.html", lang=lang) user = get_user_by_name(username) if user == None: return abort(404) if user.is_banned() and (not current_user.is_authenticated or not current_user.has_admin_rights()): return redirect(url_for("route_profile", username=username)) users, next_page, prev_page = compute_pages(request.args, get_followers, user) return render_template("profile/profile_followers.html", lang=lang, user=user, users=users, render_user=bind1(render_user, lang), prev_page=prev_page, next_page=next_page, has_before="b" in request.args or "a" in request.args)