示例#1
0
文件: views.py 项目: hisahi/Nanibgal
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)
示例#2
0
文件: views.py 项目: hisahi/Nanibgal
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))
示例#3
0
文件: auth.py 项目: hisahi/Nanibgal
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)
示例#4
0
文件: auth.py 项目: hisahi/Nanibgal
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)
示例#5
0
文件: views.py 项目: hisahi/Nanibgal
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)
示例#6
0
文件: views.py 项目: hisahi/Nanibgal
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)