aboutsummaryrefslogtreecommitdiff
path: root/app/models.py
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2018-05-14 00:40:34 +0100
committerrubenwardy <rw@rubenwardy.com>2018-05-14 00:40:34 +0100
commit73fa5d11866e1ab36463c3a773b8ca0d3671a709 (patch)
treee1e21333d32746d1a3c02d81033f7561779672b0 /app/models.py
parentacc48c72620fe9bfdf3c72666d57af7e3c9306d0 (diff)
downloadcheatdb-73fa5d11866e1ab36463c3a773b8ca0d3671a709.tar.xz
Add email support
Diffstat (limited to 'app/models.py')
-rw-r--r--app/models.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/app/models.py b/app/models.py
index e0bcb2e..eaa44e8 100644
--- a/app/models.py
+++ b/app/models.py
@@ -49,6 +49,7 @@ class Permission(enum.Enum):
APPROVE_NEW = "APPROVE_NEW"
CHANGE_RELEASE_URL = "CHANGE_RELEASE_URL"
CHANGE_RANK = "CHANGE_RANK"
+ CHANGE_EMAIL = "CHANGE_EMAIL"
EDIT_EDITREQUEST = "EDIT_EDITREQUEST"
# Only return true if the permission is valid for *all* contexts
@@ -119,9 +120,17 @@ class User(db.Model, UserMixin):
return user.rank.atLeast(UserRank.EDITOR)
elif perm == Permission.CHANGE_RANK:
return user.rank.atLeast(UserRank.MODERATOR)
+ elif perm == Permission.CHANGE_EMAIL:
+ return user == self or user.rank.atLeast(UserRank.MODERATOR)
else:
raise Exception("Permission {} is not related to users".format(perm.name))
+class UserEmailVerification(db.Model):
+ id = db.Column(db.Integer, primary_key=True)
+ user_id = db.Column(db.Integer, db.ForeignKey("user.id"))
+ email = db.Column(db.String(100))
+ token = db.Column(db.String(32))
+ user = db.relationship("User", foreign_keys=[user_id])
class Notification(db.Model):
id = db.Column(db.Integer, primary_key=True)