diff --git a/files/helpers/config/const.py b/files/helpers/config/const.py index 5192e3c76..ea55b83d7 100644 --- a/files/helpers/config/const.py +++ b/files/helpers/config/const.py @@ -499,6 +499,7 @@ PERMS = { # Minimum admin_level to perform action. 'SEE_GHOST_VOTES': 5, 'MODS_EVERY_HOLE': 6, + 'MODS_EVERY_GROUP': 6, } FEATURES = { diff --git a/files/routes/groups.py b/files/routes/groups.py index 656e662e2..51bb4bcf7 100644 --- a/files/routes/groups.py +++ b/files/routes/groups.py @@ -139,7 +139,7 @@ def group_approve(v:User, group_name, user_id): group = g.db.get(Group, group_name) if not group: abort(404) - if v.id != group.owner.id: + if v.id != group.owner.id and v.admin_level < PERMS['MODS_EVERY_GROUP']: abort(403, f"Only the group owner (@{group.owner.username}) can approve applications!") application = g.db.query(GroupMembership).filter_by(user_id=user_id, group_name=group.name).one_or_none() @@ -164,7 +164,7 @@ def group_reject(v:User, group_name, user_id): group = g.db.get(Group, group_name) if not group: abort(404) - if v.id != group.owner.id: + if v.id != group.owner.id and v.admin_level < PERMS['MODS_EVERY_GROUP']: abort(403, f"Only the group owner (@{group.owner.username}) can reject memberships!") membership = g.db.query(GroupMembership).filter_by(user_id=user_id, group_name=group.name).one_or_none() diff --git a/files/templates/group_memberships.html b/files/templates/group_memberships.html index d7cc41757..cd2ab90b5 100644 --- a/files/templates/group_memberships.html +++ b/files/templates/group_memberships.html @@ -31,7 +31,7 @@ Applied on {% endif %} - {% if v.id == group.owner.id %} + {% if v.id == group.owner.id or v.admin_level >= PERMS['MODS_EVERY_GROUP'] %} {% endif %} @@ -56,7 +56,7 @@ {% endif %} - {% if v.id == group.owner.id %} + {% if v.id == group.owner.id or v.admin_level >= PERMS['MODS_EVERY_GROUP'] %}
@@ -75,7 +75,7 @@
{% endmacro %} -{% if v.id == group.owner.id %} +{% if v.id == group.owner.id or v.admin_level >= PERMS['MODS_EVERY_GROUP'] %} {{process_memberships(applications, 'applications')}} {{process_memberships(members, 'members')}}