diff --git a/app/community/routes.py b/app/community/routes.py index 0e0e1556..4516d2a5 100644 --- a/app/community/routes.py +++ b/app/community/routes.py @@ -1403,6 +1403,26 @@ def community_moderate_subscribers(actor): abort(404) +@bp.route('/community///kick_user_community', methods=['GET', 'POST']) +@login_required +def community_kick_user(community_id: int, user_id: int): + community = Community.query.get_or_404(community_id) + user = User.query.get_or_404(user_id) + + if community is not None: + if current_user.is_admin(): + + db.session.query(CommunityMember).filter_by(user_id=user_id, community_id=community.id).delete() + db.session.commit() + + else: + abort(401) + else: + abort(404) + + return redirect(url_for('community.community_moderate_subscribers', actor=community.name)) + + @bp.route('//moderate/wiki', methods=['GET']) @login_required def community_wiki_list(actor): diff --git a/app/templates/community/community_moderate_subscribers.html b/app/templates/community/community_moderate_subscribers.html index 9421819a..bf61c627 100644 --- a/app/templates/community/community_moderate_subscribers.html +++ b/app/templates/community/community_moderate_subscribers.html @@ -54,6 +54,9 @@
  • Report
  • {{ _('Ban') }}
  • + {% if current_user.is_admin() and community.is_local() and not user.is_local() %} +
  • {{ _('Kick') }}
  • + {% endif %} @@ -126,4 +129,4 @@ {% endif %} -{% endblock %} \ No newline at end of file +{% endblock %}