mirror of https://github.com/JohnHammond/CTFd.git
Merge pull request #1365 from CTFd/remove-get-config-from-models
* Remove the duplicated `get_config` function from `CTFd/models`update-jquery-3.5.0
commit
f7e7c3c337
|
@ -1,12 +1,10 @@
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
import six
|
|
||||||
from flask_marshmallow import Marshmallow
|
from flask_marshmallow import Marshmallow
|
||||||
from flask_sqlalchemy import SQLAlchemy
|
from flask_sqlalchemy import SQLAlchemy
|
||||||
from sqlalchemy.ext.hybrid import hybrid_property
|
from sqlalchemy.ext.hybrid import hybrid_property
|
||||||
from sqlalchemy.orm import column_property, validates
|
from sqlalchemy.orm import column_property, validates
|
||||||
|
|
||||||
from CTFd.cache import cache
|
|
||||||
from CTFd.utils.crypto import hash_password
|
from CTFd.utils.crypto import hash_password
|
||||||
from CTFd.utils.humanize.numbers import ordinalize
|
from CTFd.utils.humanize.numbers import ordinalize
|
||||||
|
|
||||||
|
@ -142,6 +140,8 @@ class Awards(db.Model):
|
||||||
|
|
||||||
@hybrid_property
|
@hybrid_property
|
||||||
def account_id(self):
|
def account_id(self):
|
||||||
|
from CTFd.utils import get_config
|
||||||
|
|
||||||
user_mode = get_config("user_mode")
|
user_mode = get_config("user_mode")
|
||||||
if user_mode == "teams":
|
if user_mode == "teams":
|
||||||
return self.team_id
|
return self.team_id
|
||||||
|
@ -259,6 +259,8 @@ class Users(db.Model):
|
||||||
|
|
||||||
@hybrid_property
|
@hybrid_property
|
||||||
def account_id(self):
|
def account_id(self):
|
||||||
|
from CTFd.utils import get_config
|
||||||
|
|
||||||
user_mode = get_config("user_mode")
|
user_mode = get_config("user_mode")
|
||||||
if user_mode == "teams":
|
if user_mode == "teams":
|
||||||
return self.team_id
|
return self.team_id
|
||||||
|
@ -291,6 +293,8 @@ class Users(db.Model):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def get_solves(self, admin=False):
|
def get_solves(self, admin=False):
|
||||||
|
from CTFd.utils import get_config
|
||||||
|
|
||||||
solves = Solves.query.filter_by(user_id=self.id)
|
solves = Solves.query.filter_by(user_id=self.id)
|
||||||
freeze = get_config("freeze")
|
freeze = get_config("freeze")
|
||||||
if freeze and admin is False:
|
if freeze and admin is False:
|
||||||
|
@ -299,6 +303,8 @@ class Users(db.Model):
|
||||||
return solves.all()
|
return solves.all()
|
||||||
|
|
||||||
def get_fails(self, admin=False):
|
def get_fails(self, admin=False):
|
||||||
|
from CTFd.utils import get_config
|
||||||
|
|
||||||
fails = Fails.query.filter_by(user_id=self.id)
|
fails = Fails.query.filter_by(user_id=self.id)
|
||||||
freeze = get_config("freeze")
|
freeze = get_config("freeze")
|
||||||
if freeze and admin is False:
|
if freeze and admin is False:
|
||||||
|
@ -307,6 +313,8 @@ class Users(db.Model):
|
||||||
return fails.all()
|
return fails.all()
|
||||||
|
|
||||||
def get_awards(self, admin=False):
|
def get_awards(self, admin=False):
|
||||||
|
from CTFd.utils import get_config
|
||||||
|
|
||||||
awards = Awards.query.filter_by(user_id=self.id)
|
awards = Awards.query.filter_by(user_id=self.id)
|
||||||
freeze = get_config("freeze")
|
freeze = get_config("freeze")
|
||||||
if freeze and admin is False:
|
if freeze and admin is False:
|
||||||
|
@ -432,6 +440,8 @@ class Teams(db.Model):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def get_solves(self, admin=False):
|
def get_solves(self, admin=False):
|
||||||
|
from CTFd.utils import get_config
|
||||||
|
|
||||||
member_ids = [member.id for member in self.members]
|
member_ids = [member.id for member in self.members]
|
||||||
|
|
||||||
solves = Solves.query.filter(Solves.user_id.in_(member_ids)).order_by(
|
solves = Solves.query.filter(Solves.user_id.in_(member_ids)).order_by(
|
||||||
|
@ -446,6 +456,8 @@ class Teams(db.Model):
|
||||||
return solves.all()
|
return solves.all()
|
||||||
|
|
||||||
def get_fails(self, admin=False):
|
def get_fails(self, admin=False):
|
||||||
|
from CTFd.utils import get_config
|
||||||
|
|
||||||
member_ids = [member.id for member in self.members]
|
member_ids = [member.id for member in self.members]
|
||||||
|
|
||||||
fails = Fails.query.filter(Fails.user_id.in_(member_ids)).order_by(
|
fails = Fails.query.filter(Fails.user_id.in_(member_ids)).order_by(
|
||||||
|
@ -460,6 +472,8 @@ class Teams(db.Model):
|
||||||
return fails.all()
|
return fails.all()
|
||||||
|
|
||||||
def get_awards(self, admin=False):
|
def get_awards(self, admin=False):
|
||||||
|
from CTFd.utils import get_config
|
||||||
|
|
||||||
member_ids = [member.id for member in self.members]
|
member_ids = [member.id for member in self.members]
|
||||||
|
|
||||||
awards = Awards.query.filter(Awards.user_id.in_(member_ids)).order_by(
|
awards = Awards.query.filter(Awards.user_id.in_(member_ids)).order_by(
|
||||||
|
@ -523,6 +537,8 @@ class Submissions(db.Model):
|
||||||
|
|
||||||
@hybrid_property
|
@hybrid_property
|
||||||
def account_id(self):
|
def account_id(self):
|
||||||
|
from CTFd.utils import get_config
|
||||||
|
|
||||||
user_mode = get_config("user_mode")
|
user_mode = get_config("user_mode")
|
||||||
if user_mode == "teams":
|
if user_mode == "teams":
|
||||||
return self.team_id
|
return self.team_id
|
||||||
|
@ -531,6 +547,8 @@ class Submissions(db.Model):
|
||||||
|
|
||||||
@hybrid_property
|
@hybrid_property
|
||||||
def account(self):
|
def account(self):
|
||||||
|
from CTFd.utils import get_config
|
||||||
|
|
||||||
user_mode = get_config("user_mode")
|
user_mode = get_config("user_mode")
|
||||||
if user_mode == "teams":
|
if user_mode == "teams":
|
||||||
return self.team
|
return self.team
|
||||||
|
@ -600,6 +618,8 @@ class Unlocks(db.Model):
|
||||||
|
|
||||||
@hybrid_property
|
@hybrid_property
|
||||||
def account_id(self):
|
def account_id(self):
|
||||||
|
from CTFd.utils import get_config
|
||||||
|
|
||||||
user_mode = get_config("user_mode")
|
user_mode = get_config("user_mode")
|
||||||
if user_mode == "teams":
|
if user_mode == "teams":
|
||||||
return self.team_id
|
return self.team_id
|
||||||
|
@ -668,22 +688,3 @@ class Tokens(db.Model):
|
||||||
|
|
||||||
class UserTokens(Tokens):
|
class UserTokens(Tokens):
|
||||||
__mapper_args__ = {"polymorphic_identity": "user"}
|
__mapper_args__ = {"polymorphic_identity": "user"}
|
||||||
|
|
||||||
|
|
||||||
@cache.memoize()
|
|
||||||
def get_config(key):
|
|
||||||
"""
|
|
||||||
This should be a direct clone of its implementation in utils. It is used to avoid a circular import.
|
|
||||||
"""
|
|
||||||
config = Configs.query.filter_by(key=key).first()
|
|
||||||
if config and config.value:
|
|
||||||
value = config.value
|
|
||||||
if value and value.isdigit():
|
|
||||||
return int(value)
|
|
||||||
elif value and isinstance(value, six.string_types):
|
|
||||||
if value.lower() == "true":
|
|
||||||
return True
|
|
||||||
elif value.lower() == "false":
|
|
||||||
return False
|
|
||||||
else:
|
|
||||||
return value
|
|
||||||
|
|
Loading…
Reference in New Issue