Beispiel #1
0
def register(username, password, email):
    state_code = 0
    if not Checker.is_valid_username(username):
        state_code = 2002
    elif not Checker.is_valid_password(password):
        state_code = 2007
    elif not Checker.is_valid_password(email):
        state_code = 2006
    elif User.query.filter_by(username=username).first():
        state_code = 2008
    else:
        state_code = 1
        user = User(username=username, password=password, email=email)
        user.save()
    return state_code
def api_logout():
    session_id = request.args.get('session_id')
    user = User.get_cur_user(session_id=session_id)
    sessions = user.sessions.all()
    for s in sessions:
        s.delete()
    return jsonify({"status": "1"})
Beispiel #3
0
def contest(contest_id):
    contest = Contest.query.filter_by(id=contest_id).first()
    user = User.get_cur_user()

    now = time.time()
    if now < contest.start_time and not contest.is_allowed_edit(user):
        return not_have_permission()

    player = None
    info = {}
    if user: player = contest.players.filter_by(user_id=user.id).first()
    if player:
        details = player.get_score_details()
        for key, val in details.items():
            if isinstance(val, dict):
                pid = int(key)
                jid = int(val["judge_id"])
                status = JudgeState.query.filter_by(id=jid).first().status
                url = url_for("judge_detail", judge_id=jid)
                if contest.is_running():
                    info[pid] = u"<a href = '%s'>已提交</a>" % (url)
                else:
                    info[pid] = "<a href = '%s'>%s</a>" % (url, status)

    return render_template("contest.html",
                           tool=Tools,
                           contest=contest,
                           info=info)
Beispiel #4
0
def edit_contest(contest_id):
    user = User.get_cur_user()
    if not user:
        return need_login()

    contest = Contest.query.filter_by(id=contest_id).first()
    if contest and not contest.is_allowed_edit(user):
        return not_have_permission()
    elif not (user.have_privilege(4) or user.have_privilege(5)):
        return not_have_permission()

    if request.method == "POST":
        if not contest:
            contest = Contest(title=request.form.get("title"),
                              start_time=request.form.get("start_time"),
                              end_time=request.form.get("end_time"),
                              holder=user)

        contest.title = request.form.get("title")
        contest.start_time = request.form.get("start_time")
        contest.end_time = request.form.get("end_time")
        contest.information = request.form.get("information")

        try:
            problems_list = [int(pid) for pid in request.form.get("problems").split(",")]
        except:
            problems_list = []
        contest.set_problems(problems_list)

        contest.save()

        return redirect(url_for("contest", contest_id=contest.id))
    else:
        return render_template("edit_contest.html", tool=Tools, contest=contest)
Beispiel #5
0
def edit_article(article_id):
    user = User.get_cur_user()
    if not user:
        return need_login()

    article = Article.query.filter_by(id=article_id).first()
    if article and article.is_allowed_edit(user) == False:
        return not_have_permission()

    if request.method == "POST":
        if request.form.get("title") == "" or request.form.get(
                "content") == "":
            return show_error("Please input title and content",
                              url_for("edit_article", article_id=article_id))
        if not article:
            article = Article(title=request.form.get("title"),
                              content=request.form.get("content"),
                              user=user)

        article.title = request.form.get("title")
        article.content = request.form.get("content")
        article.update_time = time.time()
        article.sort_time = time.time()
        article.save()
        return redirect(url_for("article", article_id=article.id))
    else:
        return render_template("edit_article.html",
                               tool=Tools,
                               article=article,
                               tab="discussion")
Beispiel #6
0
def contest(contest_id):
    contest = Contest.query.filter_by(id=contest_id).first()
    user = User.get_cur_user()

    now = time.time()
    if now < contest.start_time and not contest.is_allowed_edit(user):
        return not_have_permission()

    player = None
    info = {}
    if user: player = contest.players.filter_by(user_id = user.id).first()
    if player:
        details = player.get_score_details()
        for key, val in details.iteritems():
            if isinstance(val, dict):
                pid = int(key)
                jid = int(val["judge_id"])
                status = JudgeState.query.filter_by(id = jid).first().status
                url = url_for("judge_detail", judge_id = jid)
                if contest.is_running():
                    info[pid] = u"<a href = '%s'>已提交</a>" % (url)
                else:
                    info[pid] = "<a href = '%s'>%s</a>" % (url, status)
        
    return render_template("contest.html", tool=Tools, contest=contest, info = info)
Beispiel #7
0
def edit_notice(notice_id):
    user = User.get_cur_user()
    if not user:
        return need_login()
    notice = Notice.query.filter_by(id=notice_id).first()
    if notice and not notice.is_allowed_edit(user):
        return not_have_permission()
    elif not (user.have_privilege(4) or user.have_privilege(5)):
        return not_have_permission()

    if request.method == "POST":
        if request.form.get("title") == "" or request.form.get(
                "content") == "":
            return show_error("Please input title and content",
                              url_for("edit_notice", anotice_id=notice_id))
        if not notice:
            notice = Notice(title=request.form.get("title"),
                            content=request.form.get("content"),
                            user=user)

        notice.title = request.form.get("title")
        notice.content = request.form.get("content")
        notice.tags = request.form.get("tags")
        notice.update_time = time.time()
        notice.sort_time = time.time()
        notice.save()
        return redirect(url_for("info"))
    else:
        return render_template("edit_notice.html",
                               tool=Tools,
                               notice=notice,
                               tab="notice")
Beispiel #8
0
def find_user():
    nickname = request.args.get("nickname")
    user = User.find_user(nickname=nickname)
    if not user:
        return show_error("Can't find " + nickname, url_for("ranklist"))

    return redirect(url_for("user", user_id=user.id))
Beispiel #9
0
def delete_article(article_id):
    user = User.get_cur_user()
    article = Article.query.filter_by(id=article_id).first()

    if not user:
        return need_login()

    if not article:
        return show_error("Can't find article", url_for('index'))

    if article and article.is_allowed_edit(user) == False:
        return not_have_permission()

    if request.args.get("confirm") == "true":
        article = Article.query.filter_by(id=article_id).first()
        if article and article.is_allowed_edit(user) == False:
            return not_have_permission()

        if article:
            article.delete()
        return redirect(url_for("discussion"))
    else:
        return render_template("delete_article.html",
                               tool=Tools,
                               user=user,
                               article=article)
Beispiel #10
0
def edit_problem(problem_id):
    user = User.get_cur_user()
    if not user:
        return need_login()

    problem = Problem.query.filter_by(id=problem_id).first()
    if problem and problem.is_allowed_edit(user) == False:
        return not_have_permission()

    if request.method == "POST":
        if not problem:
            problem_id = controller.create_problem(
                user=user, title=request.form.get("title"))
            problem = Problem.query.filter_by(id=problem_id).first()
        problem.update(title=request.form.get("title"),
                       description=request.form.get("description"),
                       input_format=request.form.get("input_format"),
                       output_format=request.form.get("output_format"),
                       example=request.form.get("example"),
                       limit_and_hint=request.form.get("limit_and_hint"))

        problem.save()

        return redirect(url_for("problem", problem_id=problem.id))
    else:
        return render_template("edit_problem.html",
                               tool=Tools,
                               problem=problem)
Beispiel #11
0
def api_logout():
    session_id = request.args.get('session_id')
    user = User.get_cur_user(session_id=session_id)
    sessions = user.sessions.all()
    for s in sessions:
        s.delete()
    return jsonify({"status": "1"})
Beispiel #12
0
def edit_problem(problem_id):
    user = User.get_cur_user()
    if not user:
        return need_login()

    problem = Problem.query.filter_by(id=problem_id).first()
    if problem and problem.is_allowed_edit(user) == False:
        return not_have_permission()

    if request.method == "POST":
        if not problem:
            problem_id = controller.create_problem(user=user, title=request.form.get("title"))
            problem = Problem.query.filter_by(id=problem_id).first()
        problem.update(title=request.form.get("title"),
                       description=request.form.get("description"),
                       input_format=request.form.get("input_format"),
                       output_format=request.form.get("output_format"),
                       example=request.form.get("example"),
                       limit_and_hint=request.form.get("limit_and_hint"))

        problem.save()

        return redirect(url_for("problem", problem_id=problem.id))
    else:
        return render_template("edit_problem.html", tool=Tools, problem=problem)
Beispiel #13
0
def upload_testdata(problem_id):
    user = User.get_cur_user()
    if not user:
        return need_login()

    problem = Problem.query.filter_by(id=problem_id).first()
    if not problem:
        abort(404)
    if problem.is_allowed_edit(user) == False:
        return not_have_permission()
    if request.method == "POST":
        file = request.files.get("testdata")
        if file:
            problem.update_testdata(file)
        if request.form.get("time_limit"):
            problem.time_limit = int(request.form.get("time_limit"))
        if request.form.get("memory_limit"):
            problem.memory_limit = int(request.form.get("memory_limit"))
        problem.save()
        return redirect(url_for("upload_testdata", problem_id=problem_id))
    else:
        return render_template("upload_testdata.html",
                               tool=Tools,
                               problem=problem,
                               parse=FileParser.parse_as_testdata)
Beispiel #14
0
def find_user():
    nickname = request.args.get("nickname")
    user = User.find_user(nickname=nickname)
    if not user:
        return show_error("Can't find " + nickname, url_for("ranklist"))

    return redirect(url_for("user", user_id=user.id))
Beispiel #15
0
def judge_state():
    query = JudgeState.query.order_by(db.desc(JudgeState.id))
    nickname = request.args.get("submitter")
    problem_id = request.args.get("problem_id")
    if request.args.get("submitter"):
        submitter = User.query.filter_by(nickname=nickname).first()
        if submitter:
            submitter_id = submitter.id
        else:
            submitter_id = 0
        query = query.filter_by(user_id=submitter_id)
    if request.args.get("problem_id"):
        query = query.filter_by(problem_id=int(problem_id))

    def make_url(page, other):
        other["page"] = page
        return url_for("judge_state") + "?" + urlencode(other)

    if not nickname:
        nickname = ""
    if not problem_id:
        problem_id = ""
    sorter = Paginate(query, make_url=make_url, other={"submitter": nickname, "problem_id": problem_id},
                      cur_page=request.args.get("page"), edge_display_num=3, per_page=10)

    return render_template("judge_state.html", user=User.get_cur_user(), judges=sorter.get(), tab="judge",
                           submitter=nickname, problem_id=problem_id, sorter=sorter, encode=urlencode, tool=Tools)
Beispiel #16
0
def unstar_problem(problem_id):
    user = User.get_cur_user()
    problem = Problem.query.filter_by(id=problem_id).first()
    if not problem:
        abort(404)
    problem.stared.remove(user)
    problem.save()
    return redirect(url_for("problem", problem_id=problem_id))
Beispiel #17
0
def delete_notice(notice_id):
    user = User.get_cur_user()
    if not user:
        return need_login()
    notice = Notice.query.filter_by(id=notice_id).first()
    if notice and notice.is_allowed_edit(user) is False:
        return not_have_permission()
    notice.delete()
    return redirect(url_for("info"))
Beispiel #18
0
def contest_ranklist(contest_id):
    user = User.get_cur_user()
    contest = Contest.query.filter_by(id=contest_id).first()
    if not contest:
        abort(404)
    now = time.time()
    if contest.is_allowed_edit(user) or now > contest.end_time:
        return render_template("contest_ranklist.html", tool=Tools, contest=contest)
    else:
        return not_have_permission()
Beispiel #19
0
def judge_detail(judge_id):
    judge = JudgeState.query.filter_by(id=judge_id).first()
    if not judge:
        abort(404)

    return render_template("judge_detail.html",
                           judge=judge,
                           user=User.get_cur_user(),
                           tab="judge",
                           tool=Tools)
Beispiel #20
0
def problem(problem_id):
    user = User.get_cur_user()

    problem = Problem.query.filter_by(id=problem_id).first()
    if not problem:
        abort(404)

    if problem.is_allowed_use(user) == False:
        return not_have_permission()

    return render_template("problem.html", tool=Tools, tab="problem_set", problem=problem)
Beispiel #21
0
def problem(problem_id):
    user = User.get_cur_user()

    problem = Problem.query.filter_by(id=problem_id).first()
    if not problem:
        abort(404)

    if problem.is_allowed_use(user) is False:
        return not_have_permission()

    return render_template("problem.html", tool=Tools, tab="problem_set", problem=problem)
Beispiel #22
0
def delete_comment(comment_id):
    user = User.get_cur_user()
    comment = Comment.query.filter_by(id=comment_id).first()

    if not user:
        return need_login()
    if not comment:
        return show_error("Can't find comment", url_for('index'))
    if comment and comment.is_allowed_edit(user) is False:
        return not_have_permission()
    if comment:
        comment.delete()
    return redirect(url_for('article', article_id=comment.article_id))
Beispiel #23
0
def change_public_attr(problem_id):
    session_id = request.args.get('session_id')
    user = User.get_cur_user(session_id=session_id)
    problem = Problem.query.filter_by(id=problem_id).first()
    if problem and user and user.have_privilege(2):
        if request.method == "POST":
            problem.is_public = True
        elif request.method == "DELETE":
            problem.is_public = False
        problem.save()
    else:
        abort(404)
    return jsonify({"status": 0})
Beispiel #24
0
def change_public_attr(problem_id):
    session_id = request.args.get('session_id')
    user = User.get_cur_user(session_id=session_id)
    problem = Problem.query.filter_by(id=problem_id).first()
    if problem and user and user.have_privilege(2):
        if request.method == "POST":
            problem.is_public = True
        elif request.method == "DELETE":
            problem.is_public = False
        problem.save()
    else:
        abort(404)
    return jsonify({"status": 0})
Beispiel #25
0
def edit_user(user_id):
    edited_user = User.find_user(id=user_id)
    if not edited_user:
        return show_error("Can't find user", next=url_for("index"))

    user = User.get_cur_user()
    if not edited_user.is_allowed_edit(user):
        return not_have_permission()

    if request.method == "POST":
        email = request.form.get("email")
        information = request.form.get("information")
        old_password = request.form.get("old_password")
        new_password = request.form.get("new_password")

        status = 1
        if not Checker.is_valid_email(email):
            status = 3001

        if information == "":
            information = None

        if old_password:
            if not edited_user.check_password(old_password):
                status = 3002
            else:
                if not Checker.is_valid_password(new_password):
                    edited_user.password = new_password
                else:
                    status = 3003

        if status == 1:
            edited_user.email = email
            edited_user.information = information
            edited_user.save()

        return render_template("edit_user.html", tool=Tools, edited_user=edited_user, status=status)
    else:
        return render_template("edit_user.html", tool=Tools, edited_user=edited_user)
Beispiel #26
0
def user(user_id):
    user = User.find_user(id=user_id)
    if not user:
        return show_error("Can't find user", next=url_for("index"))

    user.refresh_submit_info()
    user.save()

    articles = Article.query.filter_by(user_id = user.id).order_by(Article.public_time.desc()).all()
    articles_num = len(articles)

    return render_template("user.html", tool=Tools, shown_user=user,
                            articles_num = articles_num, articles = articles)
Beispiel #27
0
def contest_problem(contest_id, kth_problem):
    contest = Contest.query.filter_by(id=contest_id).first()
    user = User.get_cur_user()
    if not contest:
        abort(404)

    now = time.time()
    if now < contest.start_time and not contest.is_allowed_edit(user):
        return not_have_permission()

    problem = contest.get_problems()[kth_problem]
    if now > contest.end_time:
        return redirect(url_for("problem", problem_id=problem.id))

    return render_template("contest_problem.html", tool=Tools, problem=problem, contest=contest)
Beispiel #28
0
def submit_code(problem_id):
    user = User.get_cur_user()
    if not user:
        return need_login()

    problem = Problem.query.filter_by(id=problem_id).first()
    if not problem:
        abort(404)

    if request.method == "POST":
        code = request.form.get("code")
        language = "C++"
        if not code or len(code) <= 0 or len(code) >= 1024 * 100:
            return show_error(
                "Please check out your code length.The code should less than 100kb.",
                url_for("submit_code", problem_id=problem.id))

        judge = JudgeState(code=code,
                           user=user,
                           language=language,
                           problem=problem)

        contest_id = request.args.get("contest_id")
        if contest_id:
            contest = Contest.query.filter_by(id=contest_id).first()
            if contest and contest.is_running():
                judge.type = 1
                judge.type_info = contest_id
            else:
                return show_error("Sorry.The contest has been ended.",
                                  next=url_for("contest",
                                               contest_id=contest.id))
        else:
            if not problem.is_allowed_use(user):
                return show_error("Sorry.You don't have permission.",
                                  next=url_for("index"))
            if not problem.is_public:
                judge.type = 2

        judge.save()
        waiting = WaitingJudge(judge)
        waiting.save()
        return redirect(url_for("judge_detail", judge_id=judge.id))
    else:
        return render_template("submit.html",
                               tool=Tools,
                               problem=problem,
                               tab="judge")
Beispiel #29
0
def user(user_id):
    user = User.find_user(id=user_id)
    if not user:
        return show_error("Can't find user", next=url_for("index"))

    user.refresh_submit_info()
    user.save()

    articles = Article.query.filter_by(user_id=user.id).order_by(
        Article.public_time.desc()).all()
    articles_num = len(articles)

    return render_template("user.html",
                           tool=Tools,
                           shown_user=user,
                           articles_num=articles_num,
                           articles=articles)
Beispiel #30
0
def comment_article(article_id):
    user = User.get_cur_user()
    article = Article.query.filter_by(id=article_id).first()
    if not article:
        abort(404)
    if not user:
        return need_login()

    comment_str = request.form.get("comment")
    if not comment_str.replace(" ", ""):
        return show_error("请输入评论",
                          next=url_for("article", article_id=article_id))

    comment = Comment(comment_str, article, user)
    comment.save()

    return redirect(url_for("article", article_id=article.id))
Beispiel #31
0
def comment_article(article_id):
    user = User.get_cur_user()
    article = Article.query.filter_by(id=article_id).first()
    if not article:
        abort(404)
    if not user:
        return need_login()

    comment_str = request.form.get("comment")
    if not comment_str.replace(" ", ""):
        return show_error("请输入评论",
                          next=url_for("article", article_id=article_id))

    comment = Comment(comment_str, article, user)
    comment.save()

    return redirect(url_for("article", article_id=article.id))
Beispiel #32
0
def delete_article(article_id):
    user = User.get_cur_user()
    article = Article.query.filter_by(id=article_id).first()

    if not user:
        return need_login()

    if not article:
        return show_error("Can't find article", url_for('index'))

    if article and article.is_allowed_edit(user) == False:
        return not_have_permission()

    if request.args.get("confirm") == "true":
        article = Article.query.filter_by(id=article_id).first()
        if article and article.is_allowed_edit(user) == False:
            return not_have_permission()

        article.delete()
        return redirect(url_for("discussion"))
    else:
        return render_template("delete_article.html", tool = Tools, user=user, article=article)
Beispiel #33
0
def upload_testdata(problem_id):
    user = User.get_cur_user()
    if not user:
        return need_login()

    problem = Problem.query.filter_by(id=problem_id).first()
    if not problem:
        abort(404)
    if problem.is_allowed_edit(user) == False:
        return not_have_permission()
    if request.method == "POST":
        file = request.files.get("testdata")
        if file:
            problem.update_testdata(file)
        if request.form.get("time_limit"):
            problem.time_limit = int(request.form.get("time_limit"))
        if request.form.get("memory_limit"):
            problem.memory_limit = int(request.form.get("memory_limit"))
        problem.save()
        return redirect(url_for("upload_testdata", problem_id=problem_id))
    else:
        return render_template("upload_testdata.html", tool=Tools, problem=problem, parse=FileParser.parse_as_testdata)
Beispiel #34
0
def submit_code(problem_id):
    user = User.get_cur_user()
    if not user:
        return need_login()

    problem = Problem.query.filter_by(id=problem_id).first()
    if not problem:
        abort(404)

    if request.method == "POST":
        code = request.form.get("code")
        language = "C++"
        if not code or len(code) <= 0 or len(code) >= 1024 * 100:
            return show_error("Please check out your code length.The code should less than 100kb.",
                              url_for("submit_code", problem_id=problem.id))

        judge = JudgeState(code=code, user=user, language=language, problem=problem)

        contest_id = request.args.get("contest_id")
        if contest_id:
            contest = Contest.query.filter_by(id=contest_id).first()
            if contest and contest.is_running():
                judge.type = 1
                judge.type_info = contest_id
            else:
                return show_error("Sorry.The contest has been ended.", next=url_for("contest", contest_id=contest.id))
        else:
            if not problem.is_allowed_use(user):
                return show_error("Sorry.You don't have permission.", next=url_for("index"))
            if not problem.is_public:
                judge.type = 2

        judge.save()
        waiting = WaitingJudge(judge)
        waiting.save()
        return redirect(url_for("judge_detail", judge_id=judge.id))
    else:
        return render_template("submit.html", tool=Tools, problem=problem, tab="judge")
Beispiel #35
0
def edit_article(article_id):
    user = User.get_cur_user()
    if not user:
        return need_login()

    article = Article.query.filter_by(id=article_id).first()
    if article and article.is_allowed_edit(user) == False:
        return not_have_permission()

    if request.method == "POST":
        if request.form.get("title") == "" or request.form.get("content") == "":
            return show_error("Please input title and content",
                              url_for("edit_article", article_id=article_id))
        if not article:
            article = Article(title=request.form.get("title"), content=request.form.get("content"), user=user)

        article.title = request.form.get("title")
        article.content = request.form.get("content")
        article.update_time = time.time()
        article.sort_time = time.time()
        article.save()
        return redirect(url_for("article", article_id=article.id))
    else:
        return render_template("edit_article.html", tool=Tools, article=article, tab="discussion")
Beispiel #36
0
def edit_user(user_id):
    edited_user = User.find_user(id=user_id)
    if not edited_user:
        return show_error("Can't find user", next=url_for("index"))

    user = User.get_cur_user()
    if not edited_user.is_allowed_edit(user):
        return not_have_permission()

    if request.method == "POST":
        email = request.form.get("email")
        information = request.form.get("information")
        old_password = request.form.get("old_password")
        new_password = request.form.get("new_password")
        if user.have_privilege(1):
            if request.form.get("prb_mng"):
                edited_user.give_privilege(2)
            else:
                edited_user.del_privilege(2)
            if request.form.get("vwa_prb"):
                edited_user.give_privilege(3)
            else:
                edited_user.del_privilege(3)
            if request.form.get("cts_mng"):
                edited_user.give_privilege(4)
            else:
                edited_user.del_privilege(4)
            if request.form.get("cts_bld"):
                edited_user.give_privilege(5)
            else:
                edited_user.del_privilege(5)
            if request.form.get("atc_mng"):
                edited_user.give_privilege(6)
            else:
                edited_user.del_privilege(6)
            if request.form.get("usr_mng"):
                edited_user.give_privilege(7)
            else:
                edited_user.del_privilege(7)
            if request.form.get("dat_dld"):
                edited_user.give_privilege(8)
            else:
                edited_user.del_privilege(8)

        status = 1
        if not Checker.is_valid_email(email):
            status = 3001

        if information == "":
            information = None

        if old_password:
            if edited_user.password != old_password:
                status = 3002
            else:
                if Checker.is_valid_password(new_password):
                    edited_user.password = new_password
                else:
                    status = 3003

        if status == 1:
            edited_user.email = email
            edited_user.information = information
            edited_user.save()

        return render_template("edit_user.html", tool=Tools, edited_user=edited_user, status=status)
    else:
        return render_template("edit_user.html", tool=Tools, edited_user=edited_user)
Beispiel #37
0
def judge_detail(judge_id):
    judge = JudgeState.query.filter_by(id=judge_id).first()
    if not judge:
        abort(404)

    return render_template("judge_detail.html", judge=judge, user=User.get_cur_user(), tab="judge", tool=Tools)
Beispiel #38
0
def edit_user(user_id):
    edited_user = User.find_user(id=user_id)
    if not edited_user:
        return show_error("Can't find user", next=url_for("index"))

    user = User.get_cur_user()
    if not edited_user.is_allowed_edit(user):
        return not_have_permission()

    if request.method == "POST":
        email = request.form.get("email")
        information = request.form.get("information")
        old_password = request.form.get("old_password")
        new_password = request.form.get("new_password")
        if user.have_privilege(1):
            if request.form.get("prb_mng"):
                edited_user.give_privilege(2)
            else:
                edited_user.del_privilege(2)
            if request.form.get("vwa_prb"):
                edited_user.give_privilege(3)
            else:
                edited_user.del_privilege(3)
            if request.form.get("cts_mng"):
                edited_user.give_privilege(4)
            else:
                edited_user.del_privilege(4)
            if request.form.get("cts_bld"):
                edited_user.give_privilege(5)
            else:
                edited_user.del_privilege(5)
            if request.form.get("atc_mng"):
                edited_user.give_privilege(6)
            else:
                edited_user.del_privilege(6)
            if request.form.get("usr_mng"):
                edited_user.give_privilege(7)
            else:
                edited_user.del_privilege(7)
            if request.form.get("dat_dld"):
                edited_user.give_privilege(8)
            else:
                edited_user.del_privilege(8)

        status = 1
        if not Checker.is_valid_email(email):
            status = 3001

        if information == "":
            information = None

        if old_password:
            if edited_user.password != old_password:
                status = 3002
            else:
                if Checker.is_valid_password(new_password):
                    edited_user.password = new_password
                else:
                    status = 3003

        if status == 1:
            edited_user.email = email
            edited_user.information = information
            edited_user.save()

        return render_template("edit_user.html",
                               tool=Tools,
                               edited_user=edited_user,
                               status=status)
    else:
        return render_template("edit_user.html",
                               tool=Tools,
                               edited_user=edited_user)
Beispiel #39
0
 def get_cur_user():
     return User.get_cur_user()