aboutsummaryrefslogtreecommitdiff
path: root/app/models.py
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2018-03-21 19:03:14 +0000
committerrubenwardy <rw@rubenwardy.com>2018-03-21 19:03:14 +0000
commitaed805da6eb7cdc3f1f30eaef50cebadf571cf15 (patch)
tree7c0dcb72d367f756b31a01dbeff54512ee35807d /app/models.py
parent49a2a9192f683720d4480eb013cfabe9bb07662f (diff)
downloadcheatdb-aed805da6eb7cdc3f1f30eaef50cebadf571cf15.tar.xz
Add new package approval
Diffstat (limited to 'app/models.py')
-rw-r--r--app/models.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/app/models.py b/app/models.py
index d24c218..839bc49 100644
--- a/app/models.py
+++ b/app/models.py
@@ -35,6 +35,12 @@ class Permission(enum.Enum):
APPROVE_NEW = "APPROVE_NEW"
CHANGE_RELEASE_URL = "CHANGE_RELEASE_URL"
+ def check(self, user):
+ if self == Permission.APPROVE_NEW:
+ return user.rank.atLeast(UserRank.EDITOR)
+ else:
+ raise Exception("Non-global permission checked globally. Use Package.checkPerm or User.checkPerm instead.")
+
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
@@ -102,6 +108,8 @@ class Package(db.Model):
desc = db.Column(db.Text, nullable=True)
type = db.Column(db.Enum(PackageType))
+ approved = db.Column(db.Boolean, nullable=False, default=False)
+
# Downloads
repo = db.Column(db.String(200), nullable=True)
website = db.Column(db.String(200), nullable=True)
@@ -122,6 +130,11 @@ class Package(db.Model):
type=self.type.toName(),
author=self.author.username, name=self.name)
+ def getApproveURL(self):
+ return url_for("approve_package_page",
+ type=self.type.toName(),
+ author=self.author.username, name=self.name)
+
def getCreateReleaseURL(self):
return url_for("create_release_page",
type=self.type.toName(),