limit chat on rdrama to jannoids

pull/83/head
Aevann 2022-12-25 22:13:29 +02:00
parent ca4ffdb91a
commit d30d6b8314
4 changed files with 12 additions and 6 deletions

View File

@ -6516,3 +6516,7 @@ div.markdown {
background-color: var(--gray-600); background-color: var(--gray-600);
cursor: pointer; cursor: pointer;
} }
#root > div.App {
background-color: rgb(var(--background));
}

View File

@ -379,6 +379,7 @@ PERMS = { # Minimum admin_level to perform action.
'ADMIN_ACTIONS_REVERT': 3, 'ADMIN_ACTIONS_REVERT': 3,
'ADMIN_MOP_VISIBLE': 2, 'ADMIN_MOP_VISIBLE': 2,
'ADMIN_HOME_VISIBLE': 2, 'ADMIN_HOME_VISIBLE': 2,
'CHAT': 0,
'CHAT_BYPASS_MUTE': 2, 'CHAT_BYPASS_MUTE': 2,
'DOMAINS_BAN': 3, 'DOMAINS_BAN': 3,
'HOLE_CREATE': 0, 'HOLE_CREATE': 0,
@ -656,6 +657,7 @@ if SITE == 'rdrama.net':
FEATURES['USERS_PERMANENT_WORD_FILTERS'] = True FEATURES['USERS_PERMANENT_WORD_FILTERS'] = True
FEATURES['ASSET_SUBMISSIONS'] = True FEATURES['ASSET_SUBMISSIONS'] = True
PERMS['ADMIN_ADD'] = 4 PERMS['ADMIN_ADD'] = 4
PERMS['CHAT'] = 3
SIDEBAR_THREAD = 37696 SIDEBAR_THREAD = 37696
BANNER_THREAD = 37697 BANNER_THREAD = 37697

View File

@ -37,7 +37,7 @@ socket_ids_to_user_ids = {}
user_ids_to_socket_ids = {} user_ids_to_socket_ids = {}
@app.get("/chat") @app.get("/chat")
@is_not_permabanned @admin_level_required(PERMS['CHAT'])
def chat(v): def chat(v):
if TRUESCORE_CHAT_MINIMUM and v.truescore < TRUESCORE_CHAT_MINIMUM: if TRUESCORE_CHAT_MINIMUM and v.truescore < TRUESCORE_CHAT_MINIMUM:
abort(403, f"Need at least {TRUESCORE_CHAT_MINIMUM} truescore for access to chat.") abort(403, f"Need at least {TRUESCORE_CHAT_MINIMUM} truescore for access to chat.")
@ -46,7 +46,7 @@ def chat(v):
@socketio.on('speak') @socketio.on('speak')
@limiter.limit("3/second;10/minute") @limiter.limit("3/second;10/minute")
@is_not_permabanned @admin_level_required(PERMS['CHAT'])
@ratelimit_user("3/second;10/minute") @ratelimit_user("3/second;10/minute")
def speak(data, v): def speak(data, v):
limiter.check() limiter.check()
@ -107,7 +107,7 @@ def speak(data, v):
return '', 204 return '', 204
@socketio.on('connect') @socketio.on('connect')
@is_not_permabanned @admin_level_required(PERMS['CHAT'])
def connect(v): def connect(v):
if v.username not in online: if v.username not in online:
online.append(v.username) online.append(v.username)
@ -124,7 +124,7 @@ def connect(v):
return '', 204 return '', 204
@socketio.on('disconnect') @socketio.on('disconnect')
@is_not_permabanned @admin_level_required(PERMS['CHAT'])
def disconnect(v): def disconnect(v):
if v.username in online: if v.username in online:
online.remove(v.username) online.remove(v.username)
@ -141,7 +141,7 @@ def disconnect(v):
return '', 204 return '', 204
@socketio.on('typing') @socketio.on('typing')
@is_not_permabanned @admin_level_required(PERMS['CHAT'])
def typing_indicator(data, v): def typing_indicator(data, v):
if data and v.username not in typing: typing.append(v.username) if data and v.username not in typing: typing.append(v.username)

View File

@ -112,9 +112,9 @@ def admin_level_required(x):
def wrapper(*args, **kwargs): def wrapper(*args, **kwargs):
v = get_logged_in_user() v = get_logged_in_user()
if not v: abort(401) if not v: abort(401)
if v.admin_level < x: abort(403)
if x and not IS_LOCALHOST and not v.mfa_secret: if x and not IS_LOCALHOST and not v.mfa_secret:
abort(403, "You need to enable 2FA to use admin features!") abort(403, "You need to enable 2FA to use admin features!")
if v.admin_level < x: abort(403)
return make_response(f(*args, v=v, **kwargs)) return make_response(f(*args, v=v, **kwargs))
wrapper.__name__ = f.__name__ wrapper.__name__ = f.__name__