@@ -31,12 +31,13 @@ migrate = Migrate(app, db)
|
||||
|
||||
|
||||
class UserRank(enum.Enum):
|
||||
NOT_JOINED = 0
|
||||
NEW_MEMBER = 1
|
||||
MEMBER = 2
|
||||
EDITOR = 3
|
||||
MODERATOR = 4
|
||||
ADMIN = 5
|
||||
BANNED = 0
|
||||
NOT_JOINED = 1
|
||||
NEW_MEMBER = 2
|
||||
MEMBER = 3
|
||||
EDITOR = 4
|
||||
MODERATOR = 5
|
||||
ADMIN = 6
|
||||
|
||||
def atLeast(self, min):
|
||||
return self.value >= min.value
|
||||
|
||||
@@ -62,6 +62,10 @@ def _do_login_user(user, remember_me=False):
|
||||
if not user:
|
||||
return False
|
||||
|
||||
if user.rank == UserRank.BANNED:
|
||||
flash("You have been banned.", "error")
|
||||
return False
|
||||
|
||||
user.active = True
|
||||
if not user.rank.atLeast(UserRank.NEW_MEMBER):
|
||||
user.rank = UserRank.NEW_MEMBER
|
||||
|
||||
@@ -51,3 +51,10 @@ def flatpage(path):
|
||||
page = pages.get_or_404(path)
|
||||
template = page.meta.get('template', 'flatpage.html')
|
||||
return render_template(template, page=page)
|
||||
|
||||
@app.before_request
|
||||
def do_something_whenever_a_request_comes_in():
|
||||
if current_user.is_authenticated and current_user.rank == UserRank.BANNED:
|
||||
flash("You have been banned.", "error")
|
||||
logout_user()
|
||||
return redirect(url_for('user.login'))
|
||||
|
||||
Reference in New Issue
Block a user