예제 #1
0
파일: index.py 프로젝트: fy0/roll
    def post(self, index):
        index = int(index)
        if index not in Rolls:
            self.write_error(404)
        else:
            data = Rolls[index]
            ip = self.request.remote_ip
            
            if data['status'] == False:
                self.messages.error('投票已关闭!')
                self.redirect(url_for('roll', index))
                return
            
            if self.current_user():
                if data['host'] == self.current_user().id:
                    self.messages.error('发起人就不要ROLL了吧...')
                    self.redirect(url_for('roll', index))
                    return

            for i in data['points']:
                if ip in i['ip']:
                    self.messages.error('IP重复,不可再次参与')
                    self.redirect(url_for('roll', index))
                    return

            name = self.get_argument('name', '无名氏')
            point = random.randint(1, 999)
            data['points'].append({'name': name, 'point': point, 'ip': ip})
            self.redirect(url_for('roll', index))
예제 #2
0
 def get(self, record_id):
     _record = Books.get_by_pk(record_id)
     if _record:
         Books.remove_record_by_id(record_id)
         self.redirect(url_for('index'))
     else:
         self.redirect(url_for('index'))
예제 #3
0
파일: user.py 프로젝트: jtwmyddsgx/1024
    def post(self):
        username = self.get_argument('username', "")
        password = self.get_argument('pwd', "")
        remember = self.get_argument('remember', False)
        next = self.get_argument('next', None)
        error = False

        u = User.auth(username, password)
        if not u:
            error = True
            self.messages.error("账号或密码错误!")
            if next:
                return self.redirect(next)
            return self.redirect(url_for("index"))

        if not error:
            self.messages.success('登录成功!')
            expires = 30 if remember else None
            self.set_secure_cookie('u', u.key, expires_days=expires)
            if next:
                return self.redirect(next)
            return self.redirect(url_for("index"))
        else:
            if next:
                return self.redirect(next)
            return self.redirect(url_for("index"))
예제 #4
0
파일: common.py 프로젝트: fy0/Icarus
    def related_link(self):
        from view import url_for

        if self.related_type == OBJECT_TYPES.USER:
            return url_for('user_page', self.related_id)
        elif self.related_type == OBJECT_TYPES.TOPIC:
            return url_for('topic', self.related_id)
예제 #5
0
파일: index.py 프로젝트: fy0/roll
    def post(self, index):
        index = int(index)
        if index not in Rolls:
            self.write_error(404)
        else:
            data = Rolls[index]
            ip = self.request.remote_ip

            if data['status'] == False:
                self.messages.error('投票已关闭!')
                self.redirect(url_for('roll', index))
                return

            if self.current_user():
                if data['host'] == self.current_user().id:
                    self.messages.error('发起人就不要ROLL了吧...')
                    self.redirect(url_for('roll', index))
                    return

            for i in data['points']:
                if ip in i['ip']:
                    self.messages.error('IP重复,不可再次参与')
                    self.redirect(url_for('roll', index))
                    return

            name = self.get_argument('name', '无名氏')
            point = random.randint(1, 999)
            data['points'].append({'name': name, 'point': point, 'ip': ip})
            self.redirect(url_for('roll', index))
예제 #6
0
파일: forum.py 프로젝트: fy0/Icarus
 def topic_check(self, topic):
     if not topic:
         self.messages.error("找不到指定的主题")
         self.redirect(url_for("index"))
         return False
     if not topic.can_edit(self.current_user()):
         self.messages.error("你没有编辑该主题的权限")
         self.redirect(url_for("topic", topic.id))
         return False
     return True
예제 #7
0
파일: forum.py 프로젝트: fy0/Icarus
 def post(self):
     title = self.get_argument("title", "").strip()
     board = self.get_argument("board", None)
     content = self.get_argument("content", "").strip()
     if title and config.TITLE_LENGTH_MIN <= len(title) <= config.TITLE_LENGTH_MAX and Board.exists_by_pk(board):
         t = Topic.new(title, self.current_user() or 0, board, content)
         self.redirect(url_for("topic", t.id))
     else:
         # 非标准提交,不用过于客气
         self.redirect(url_for("topic_new"))
예제 #8
0
파일: board.py 프로젝트: jtwmyddsgx/1024
    def post(self):
        words = self.get_argument('words', '')  # 用户的留言
        dele_by_key = self.get_argument('theKey', '')
        IP = self.request.headers["X-Forwarded-For"]
        user = self.current_user()
        username = None
        word_user = None
        word_username = None
        if user is None:
            user = JsDict()
            user.username = "******"

        if dele_by_key != "":
            word_user = Board.get_one(Board.key == dele_by_key)
        if word_user is not None:
            word_username = word_user.username
        if user is not None:
            username = user.username
        if dele_by_key:
            if user.is_admin() or username == word_username:  # 如果不是admin用户将无法删除
                Board.dele_by_key(dele_by_key)
                self.write("删除成功!")
            else:
                self.write("您没有删除权限!")
        elif words:
            username = user.username
            user_re = re.compile(r"@(\S{3,19}) (.*)")
            try:
                foruser = user_re.search(words).group(1)
                if not User.exist(foruser):
                    foruser = ""
                else:
                    words = user_re.search(words).group(2)
            except Exception as e:
                foruser = ""
            if Board.num_lim(username):
                self.messages.error("留言过多,请联系管理员!")
                self.redirect("/board")
            elif user.username != "游客" and user.level == 0:
                self.messages.error("您暂时无法留言!")
                self.redirect(url_for("board"))
            else:
                Board.new(username, foruser, words, IP)
                self.messages.success("留言成功!")
                self.redirect(url_for("board"))
        else:
            self.redirect(url_for("board"))

        '''
예제 #9
0
파일: forum.py 프로젝트: fy0/Icarus
    def post(self, topic_id):
        topic = Topic.get_by_pk(topic_id)
        if not self.topic_check(topic):
            return

        title = self.get_argument("title", "").strip()
        content = self.get_argument("content", "").strip()

        if title and config.TITLE_LENGTH_MIN <= len(title) <= config.TITLE_LENGTH_MAX:
            topic.edit({"title": title, "content": content}, self.current_user())
            self.messages.success("编辑成功")
            self.redirect(url_for("topic", topic.id))
        else:
            # 非标准提交,不用过于客气
            self.redirect(url_for("topic_new"))
예제 #10
0
파일: user.py 프로젝트: fy0/ctftools
    def post(self):
        username = self.get_argument("username")
        password = self.get_argument("password")
        password_again = self.get_argument("password_again")
        next = self.get_argument('next', None)

        error = False
        if len(username) < 3:
            error = True
            self.messages.error("用户名长度必须大于等于3")
        if len(password) < 3:
            error = True
            self.messages.error("密码长度必须大于等于3")
        if User.exist(username):
            error = True
            self.messages.error("用户已存在!")
        if password != password_again:
            error = True
            self.messages.error("两次输入的密码不一致!")

        if not config.ALLOW_REG:
            error = True
            self.messages.error("注册已经关闭")

        if not error:
            u = User.new(username, password)
            self.messages.success("账户创建成功!")
            self.redirect(
                url_for('signin') + (('?next=%s' % next) if next else ''))
            return

        self.render('user/signup.html')
예제 #11
0
파일: index.py 프로젝트: fy0/roll
 def get(self, index):
     index = int(index)
     if index not in Rolls:
         self.write_error(404)
     else:
         Rolls[index]['status'] = True
     self.redirect(url_for('roll', index))
예제 #12
0
파일: index.py 프로젝트: fy0/roll
 def get(self, index):
     index = int(index)
     if index not in Rolls:
         self.write_error(404)
     else:
         Rolls[index]['status'] = True
     self.redirect(url_for('roll', index))
예제 #13
0
파일: user.py 프로젝트: jtwmyddsgx/1024
 def get(self, *args, **kwargs):
     user = self.current_user()
     stype = args[0]
     if stype == "1":
         article_query = Article.get_by_username(user.username)
         page_size = 5
         cur_page = self.get_argument("cur_page", int(math.ceil(article_query.count() / page_size)))
         article = pagination(count_all=article_query.count(), query=article_query, page_size=page_size,
                              cur_page=cur_page)
         self.render(
             'personal/manager.html',
             article=article,
             comment={},
             forperson={},
             page_title="文章管理",
         )
     elif stype == "2":
         comment_query = Comment.get_by_username(user.username)
         forperson_query = Comment.get_by_foruser(user.username)
         page_size = 5
         cur_page1 = self.get_argument("cur_page1", int(math.ceil(comment_query.count() / page_size)))
         cur_page2 = self.get_argument("cur_page2", int(math.ceil(forperson_query.count() / page_size)))
         comment = pagination(count_all=comment_query.count(), query=comment_query, page_size=page_size,
                              cur_page=cur_page1)
         forperson = pagination(count_all=forperson_query.count(), query=forperson_query, page_size=page_size,
                                cur_page=cur_page2)
         self.render(
             'personal/manager.html',
             article={},
             comment=comment,
             forperson=forperson,
             page_title="评论管理",
         )
     else:
         return self.redirect(url_for("index"))
예제 #14
0
파일: user.py 프로젝트: jtwmyddsgx/1024
 def get(self, *args, **kwargs):
     next = self.get_argument("next", "")
     self.clear_cookie('u')
     self.messages.success("您已成功登出!")
     if next:
         return self.redirect(next)
     return self.redirect(url_for("index"))
예제 #15
0
파일: game.py 프로젝트: 5up3rc/myctf
    def post(self, game_id):
        if not self.current_user():
            self.messages.error('请先登录!')
            return self.redirect(url_for('signin'))

        if Games.is_reach_deadline():
            self.messages.error("答题时间已经结束!")
            return self.redirect(url_for('game'))

        k = self.get_argument('key')
        if Games.solve(self.current_user(), game_id, k):
            self.messages.success("回答正确!")
            self.redirect(url_for('game'))
        else:
            self.messages.error("回答错误或已经回答过!")
            self.render(game=Games.get_without_key(game_id))
예제 #16
0
    def post(self):
        username = self.get_argument("username")
        password = self.get_argument("password")
        password_again = self.get_argument("password_again")
        next = self.get_argument('next', None)

        error = False
        if not (3 <= len(username) <= 15):
            error = True
            self.messages.error("用户名长度必须在 3-15 之间")
        if len(password) < 3:
            error = True
            self.messages.error("密码长度必须大于等于3")
        if User.exist(username):
            error = True
            self.messages.error("用户已存在!")
        if password != password_again:
            error = True
            self.messages.error("两次输入的密码不一致!")

        if not error:
            u = User.new(username, password)
            self.messages.success("账户创建成功!")
            self.redirect(url_for('signin') + (('?next=%s' % next) if next else ''))
            return

        self.render('user/signup.html')
예제 #17
0
파일: user.py 프로젝트: jtwmyddsgx/books
    def post(self):
        username = self.get_argument("username")
        password = self.get_argument("password")
        next = self.get_argument('next', None)

        error = False
        if not (3 <= len(username) <= 15):
            error = True
            self.messages.error("用户名长度必须在 3-15 之间")
        if len(password) < 3:
            error = True
            self.messages.error("密码长度必须大于等于3")
        if User.exist(username):
            error = True
            self.messages.error("用户已存在!")
        # if password != password_again:
        #     error = True
        #     self.messages.error("两次输入的密码不一致!")

        if not error:
            u = User.new(username, password)
            self.set_secure_cookie("u", u.key)
            self.messages.success("账户创建成功!")
            self.redirect(url_for('index'))
            return

        self.render('user/signup.html')
예제 #18
0
 def get(self):
     try:
         Games.load_from_json('save.json')
         self.messages.success("已读取记录中的进度")
     except:
         self.messages.error("没有找到备份文件")
     self.redirect(url_for('admin'))
예제 #19
0
    def post(self):
        ret = self.value_valid(None)

        if self.messages.has_error():
            self.render('admin/question_edit.html', question=JsDict(ret), title=u'添加题目', is_new_question=True)
        else:
            Games.game_add(ret)
            self.messages.success(u'添加题目成功')
            self.redirect(url_for('admin_questions'))
예제 #20
0
파일: game.py 프로젝트: 5up3rc/myctf
    def get(self, game_id):
        if not self.current_user():
            self.messages.error('请先登录!')
            return self.redirect(url_for('signin'))

        g = Games.data[int(game_id)]
        if g:
            ret = g.copy()
            del ret['key']
            self.render(game=JsDict(ret))
예제 #21
0
파일: index.py 프로젝트: fy0/roll
 def get(self):
     index = len(Rolls) + 1
     Rolls[index] = {
         'index': index,
         'host': self.current_user().id,
         'points': [],
         'names': [],
         'status': True
     }
     self.redirect(url_for('roll', index))
예제 #22
0
파일: board.py 프로젝트: fy0/Icarus
 def last_post(self):
     """ 最近发表的留言"""
     from view import url_for
     ret = self.lasted_reply(self)
     if not ret:
         ret = self.lasted_topic(self)
         if ret:
             ret.src_link = url_for('topic', self.id)
     else:
         ret.src_link = ret.related_link
     return ret
예제 #23
0
    def post(self, game_id):
        if not self.current_user():
            self.messages.error('请先登录!')
            return self.redirect(url_for('signin'))

        if Games.is_end:
            self.messages.error("答题时间已经结束!")
            return self.redirect(url_for('game'))

        if not Games.depend_check(self.current_user(), int(game_id)):
            self.messages.error("题目尚未解锁!")
            return self.redirect(url_for('game'))

        k = self.get_argument('key')
        if Games.solve(self.current_user(), int(game_id), k):
            self.messages.success("回答正确!")
            self.redirect(url_for('game'))
        else:
            self.messages.error("回答错误或已经回答过!")
            self.render(game=Games.get_without_key(game_id))
예제 #24
0
    def post(self, qid):
        ret = self.value_valid(qid)

        if self.messages.has_error():
            q = Games.data.get(int(qid))
            self.render('admin/question_edit.html', question=JsDict(ret), title=u'编辑:%s' % q['title'])
        else:
            ret['id'] = int(qid)
            Games.game_edit(ret)
            self.messages.success(u'编辑成功')
            self.redirect(url_for('admin_questions'))
예제 #25
0
파일: board.py 프로젝트: fy0/Icarus
 def post(self):
     title = self.get_argument('board_title', '').strip()
     brief = self.get_argument('board_brief', None)
     if not title:
         self.messages.error('必须填写板块名')
     else:
         if brief:
             brief = brief.strip()
         if not MBoard.new(title, self.current_user(), brief):
             self.messages.error('创建失败,是否有同名板块存在?')
     #self.set_header('Location', self.request.headers.get("Referer"))
     self.redirect(url_for('admin_forum_board'))
예제 #26
0
    def get(self, game_id):
        if not self.current_user():
            self.messages.error('请先登录!')
            return self.redirect(url_for('signin'))

        g = Games.data[int(game_id)]
        if g and Games.depend_check(self.current_user(), int(game_id)):
            ret = g.copy()
            del ret['key']
            self.render(game=JsDict(ret))
        else:
            self.write_error(404)
예제 #27
0
파일: game.py 프로젝트: AndreaOm/myctf
    def get(self, game_id):
        if not self.current_user():
            self.messages.error('请先登录!')
            return self.redirect(url_for('signin'))

        g = Games.data[int(game_id)]
        if g and Games.depend_check(self.current_user(), int(game_id)):
            ret = g.copy()
            del ret['key']
            self.render(game=JsDict(ret))
        else:
            self.write_error(404)
예제 #28
0
파일: user.py 프로젝트: fy0/Icarus
    def post(self):
        password = self.get_argument("password", "")
        new_password = self.get_argument("new_password", "")
        new_password_again = self.get_argument("new_password_again")

        if new_password != new_password_again:
            self.messages.error("两次输入的密码不一致!")

        if len(new_password) < 3:
            self.messages.error("密码长度必须大于等于3")

        if password == new_password:
            self.messages.error("新旧密码不能相同")

        if self.messages.has_error:
            return self.redirect(url_for('settings'))

        if not User.password_change(self.current_user().username, password, new_password):
            self.messages.error("修改密码失败")
            return self.redirect(url_for('settings'))

        self.clear_cookie('u')
        self.messages.success("修改密码成功,登录自动失效,请重新登录")
        self.redirect(url_for('signin'))
예제 #29
0
파일: user.py 프로젝트: Geoion/fpage
    def post(self):
        username = self.get_argument("username")
        password = self.get_argument("password")

        error = False
        u = User.auth(username, password)
        if not u:
            error = True
            self.messages.error("帐号或密码错误!")

        if not error:
            self.messages.success("登陆成功!")
            self.set_secure_cookie("u", u.key)
            return self.redirect(url_for("index"))

        self.render('user/signin.html')
예제 #30
0
파일: wiki.py 프로젝트: fy0/Icarus
    def post(self, title):
        content = self.get_argument('content', None)
        parent_id = self.get_argument('parent_id', None)
        root_item = WikiItem.get_by_keyword(title)

        if root_item and content:
            if root_item.current:
                parent = WikiArticle.get_by_pk(parent_id)
                if root_item.id == parent.root:
                    article = WikiArticle.new(self.current_user(), root_item, parent, content)
                    return
            else:
                article = WikiArticle.new(self.current_user(), root_item, None, content)
                return
        # 非标准提交直接转向
        self.redirect(url_for('index'))
예제 #31
0
    def post(self, record_id):
        title = self.get_argument('title')
        cost = self.get_argument('cost')
        num = self.get_argument('num')
        trading = self.get_argument('trading')
        str_time = self.get_argument('time_pay')
        num = 1 if not num else int(num)
        if str_time:
            time_pay = time.mktime(time.strptime(str_time, '%Y-%m-%d'))
        else:
            time_pay = None

        Books.update_record_by_id(record_id=record_id,
                                  title=title,
                                  num=num,
                                  cost=cost,
                                  trading=trading,
                                  _time=time_pay)
        self.redirect(url_for('index'))
예제 #32
0
파일: article.py 프로젝트: jtwmyddsgx/1024
 def get(self, *args):
     key = args[0]
     ar = Article.get_by_key(key)
     page_size = 5
     comment_query = Comment.get_by_article(key)
     cur_page = self.get_argument("cur_page", int(math.ceil(comment_query.count() / page_size)))
     comment = pagination(count_all=comment_query.count(), query=comment_query, page_size=page_size, cur_page=cur_page)
     next_back = Article.get_next_back(key)
     if ar is not None:
         page_title = ar.header
         self.render(
             "spider.html",
             page_title=page_title,
             ar=ar,
             comment=comment,
             next_back=next_back,
         )
     else:
         self.messages.error("文章链接已经更新")
         self.redirect(url_for("index"))
예제 #33
0
    def post(self):
        username = self.get_argument("username")
        password = self.get_argument("password")
        remember = self.get_argument('remember', False)
        next = self.get_argument('next', None)

        error = False
        u = User.auth(username, password)
        if not u:
            error = True
            self.messages.error("帐号或密码错误!")

        if not error:
            self.messages.success("登陆成功!")
            expires = 30 if remember else None
            self.set_secure_cookie("u", u.key, expires_days=expires)
            if next:
                return self.redirect(next)
            return self.redirect(url_for("index"))

        self.render('user/signin.html')
예제 #34
0
    def post(self):
        user = self.current_user()
        title = self.get_argument('title')
        cost = self.get_argument('cost')
        num = self.get_argument('num')
        trading = self.get_argument('trading')
        str_time = self.get_argument('time_pay')
        num = 1 if not num else int(num)
        if str_time:
            time_pay = time.mktime(time.strptime(str_time, '%Y-%m-%d'))
        else:
            time_pay = None

        Books.new(title=title,
                  num=num,
                  cost=cost,
                  trading=trading,
                  user_id=user.id,
                  _time=time_pay)

        self.redirect(url_for('index'))
예제 #35
0
파일: user.py 프로젝트: Geoion/fpage
    def post(self):
        username = self.get_argument("username")
        password = self.get_argument("password")

        error = False
        if len(username) < 3:
            error = True
            self.messages.error("用户名长度必须大于等于3")
        if len(password) < 3:
            error = True
            self.messages.error("密码长度必须大于等于3")
        if User.exist(username):
            error = True
            self.messages.error("用户已存在!")

        if not error:
            u = User.new(username, password)
            self.messages.success("账户创建成功!")
            return self.redirect(url_for('signin'))

        self.render('user/signup.html')
예제 #36
0
파일: user.py 프로젝트: jtwmyddsgx/books
    def post(self):
        username = self.get_argument("username")
        password = self.get_argument("password")
        remember = self.get_argument('remember', False)
        next = self.get_argument('next', None)

        error = False
        u = User.auth(username, password)
        if not u:
            error = True
            self.messages.error("帐号或密码错误!")

        if not error:
            self.messages.success("登陆成功!")
            expires = 30 if remember else None
            self.set_secure_cookie("u", u.key, expires_days=expires)
            if next:
                return self.redirect(next)
            return self.redirect(url_for("index"))

        self.render('signin.html')
예제 #37
0
파일: index.py 프로젝트: fy0/ctftools
 def get(self):
     self.messages.error('Message Test: Error!!中文测试!!')
     self.redirect(url_for('about'))
예제 #38
0
 def get(self):
     Games.reset()
     self.messages.success('重置完成!')
     self.redirect(url_for('admin'))
예제 #39
0
 def get(self):
     Games.is_end = False
     self.messages.success('答题重新开放!')
     self.redirect(url_for('admin'))
예제 #40
0
 def get(self):
     Games.is_end = True
     self.messages.success('中止答题!')
     self.redirect(url_for('admin'))
예제 #41
0
 def get(self):
     Games.reload_data()
     self.redirect(url_for('admin'))
예제 #42
0
파일: user.py 프로젝트: Geoion/fpage
 def get(self):
     self.clear_cookie('u')
     self.messages.success("您已成功登出!")
     self.redirect(url_for("index"))
예제 #43
0
 def get(self):
     Games.save_to_json('save.json')
     self.messages.success("进度已保存")
     self.redirect(url_for('admin'))
예제 #44
0
 def get(self, qid):
     Games.game_rm(int(qid))
     self.messages.success(u'题目%s已经删除!' % qid)
     self.redirect(url_for('admin'))