PYTHON_DEV, 邮箱验证索引

This commit is contained in:
Benny
2023-01-31 19:54:09 +01:00
parent ce6aa32206
commit c561749dc8
3 changed files with 16 additions and 2 deletions

View File

@@ -70,6 +70,9 @@ class Mongo:
if r:
return r["status"]["reason"]
def is_old_user(self, username: str) -> bool:
return bool(self.db["users"].find_one({"username": username, "oldUser": True}))
class FakeMongoResource:
pass
@@ -223,6 +226,10 @@ class CommentMongoResource(CommentResource, Mongo):
def add_comment(self, captcha: str, captcha_id: int, content: str, resource_id: int,
ip: str, username: str, browser: str, parent_comment_id=None) -> dict:
# check if this user is allowed to comment
if not self.is_old_user(username):
return {"status_code": HTTPStatus.TEMPORARY_REDIRECT,
"message": "你需要验证邮箱才能评论,请到个人中心进行验证"}
returned = {"status_code": 0, "message": ""}
# check if this user is blocked
reason = self.is_user_blocked(username)
@@ -249,7 +256,9 @@ class CommentMongoResource(CommentResource, Mongo):
if not user_group:
# admin don't have to verify code
verify_result = CaptchaResource().verify_code(captcha, captcha_id)
if not verify_result["status"]:
if os.getenv("PYTHON_DEV"):
pass
elif not verify_result["status"]:
returned["status_code"] = HTTPStatus.BAD_REQUEST
returned["message"] = verify_result["message"]
return returned

View File

@@ -38,6 +38,10 @@ db.getCollection('douban').createIndex({"resourceId" : 1});
db.getCollection('douban').getIndexes();
db.getCollection('users').createIndex({"username" : 1}, { unique: true });
db.getCollection('users').createIndex(
{ "email.address": 1 },
{ unique: true, partialFilterExpression: { "email.address": { $exists: true } } }
)
db.getCollection('users').getIndexes();
db.getCollection('comment').createIndex({"resource_id" : 1});

View File

@@ -111,7 +111,8 @@ if __name__ == "__main__":
scheduler.add_job(cf.clear_fw, trigger=CronTrigger.from_crontab("0 0 */5 * *"))
scheduler.start()
logging.info("Triggering dump database now...")
threading.Thread(target=dump_db.entry_dump).start()
if not os.getenv("PYTHON_DEV"):
threading.Thread(target=dump_db.entry_dump).start()
options.define("p", default=8888, help="running port", type=int)
options.define("h", default='127.0.0.1', help="listen address", type=str)