remotes/1693045480750635534/spooky-22
fireworks88 2021-09-17 16:02:47 +02:00
parent 9a6fc86369
commit e254488981
6 changed files with 85 additions and 9 deletions

View File

@ -850,9 +850,14 @@ def ban_user(user_id, v):
if user.admin_level >= v.admin_level: abort(403)
# check for number of days for suspension
days = int(request.values.get("days")) if request.values.get('days') else 0
reason = sanitize(request.values.get("reason", ""))
message = request.values.get("reason", "")
if 'form' in request.values:
days = int(request.form.get("days")) if request.form.get('days') else 0
reason = sanitize(request.form.get("reason", ""))
message = request.form.get("reason", "")
else:
days = int(request.values.get("days")) if request.values.get('days') else 0
reason = sanitize(request.values.get("reason", ""))
message = request.values.get("reason", "")
if not user: abort(400)

View File

@ -0,0 +1,41 @@
<div class="modal fade" id="banModal" tabindex="-1" role="dialog" aria-labelledby="banModalTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header pt-3">
<h5 id="banModalTitle"></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true"><i class="far fa-times"></i></span>
</button>
</div>
<div class="modal-body" id="ban-modal-body">
<div class="mb-3">
<p class="h6 text-uppercase text-xs text-muted">for posting:</p>
<span id="ban-modal-link"></span>
</div>
<form id="banModalForm">
<input type="hidden" name="formkey" value="{{v.formkey}}" />
<label for="reason">Public ban reason (optional)</label>
<textarea name="reason" form="banModalForm" class="form-control" id="reason" aria-label="With textarea" placeholder="Enter reason"></textarea>
<label for="days" class="mt-3">Duration days</label>
<input type="number" name="days" id="days" class="form-control" placeholder="leave blank for permanent" />
<div class="custom-control custom-switch mt-3">
<input type="checkbox" class="custom-control-input" id="alts" name="alts">
<label class="custom-control-label" for="alts">Ban known alts</label>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-link text-muted" data-dismiss="modal">Cancel</button>
<button type="button" id="banUserButton" class="btn btn-danger" data-dismiss="modal"></button>
</div>
</div>
</div>
</div>

View File

@ -335,7 +335,7 @@
{% if v and v.admin_level==6 and v.id != c.author_id %}
<li id="unban-{{c.id}}" class="list-inline-item d-none {% if c.author.is_suspended %}d-md-inline-block{% endif %}"><a class="text-success" id="unexile-comment-{{c.id}}" href="javascript:void(0)" onclick="post_toast3('/unban_user/{{c.author_id}}','ban-{{c.id}}','unban-{{c.id}}')"><i class="fas fa-user-slash text-success fa-fw"></i>Unban user</a></li>
<li id="ban-{{c.id}}" class="list-inline-item d-none {% if not c.author.is_suspended %}d-md-inline-block{% endif %}"><a class="text-danger" id="exile-comment-{{c.id}}" href="javascript:void(0)" onclick="post_toast3('/ban_user/{{c.author_id}}?reason={{c.shortlink}}&days=1','ban-{{c.id}}','unban-{{c.id}}')"><i class="fas fa-user-slash text-danger fa-fw"></i>Ban user</a></li>
<li id="ban-{{c.id}}" class="list-inline-item d-none {% if not c.author.is_suspended %}d-md-inline-block{% endif %}"><a class="text-danger" id="exile-comment-{{c.id}}" href="javascript:void(0)" data-toggle="modal" data-target="#banModal" onclick="banModal('{{c.permalink|full_link}}', '{{ c.author.id }}', '{{c.author.username}}')"><i class="fas fa-user-slash text-danger fa-fw"></i>Ban user</a></li>
{% endif %}
{% if v and v.admin_level >=4 and c.oauth_app %}
@ -494,7 +494,7 @@
{% if v and (c.post and v.admin_level == 6) %}
{% if c.author_id != v.id %}
<li id="ban2-{{c.id}}" class="{% if c.author.is_suspended %}d-none{% endif %} list-group-item"><a class="text-danger d-block" id="exile-comment2-{{c.id}}" href="javascript:void(0)" onclick="post_toast2('/ban_user/{{c.author_id}}?reason={{c.shortlink}}&days=1','ban2-{{c.id}}','unban2-{{c.id}}')" data-dismiss="modal"><i class="fas fa-user-minus fa-fw text-danger"></i>Ban user</a></li>
<li id="ban2-{{c.id}}" class="{% if c.author.is_suspended %}d-none{% endif %} list-group-item" data-dismiss="modal" data-toggle="modal" data-target="#banModal" onclick="banModal('{{c.permalink|full_link}}', '{{ c.author.id }}', '{{c.author.username}}')"><a class="text-danger" id="ban2-comment-{{c.id}}" href="javascript:void(0)"><i class="fas fa-user-slash text-danger fa-fw"></i>Ban user</a></li>
<li id="unban2-{{c.id}}" class="{% if not c.author.is_suspended %}d-none{% endif %} list-group-item"><a class="text-success d-block" id="unexile-comment2-{{c.id}}" href="javascript:void(0)" onclick="post_toast2('/unban_user/{{c.author_id}}','ban2-{{c.id}}','unban2-{{c.id}}')" data-dismiss="modal"><i class="fas fa-user-minus fa-fw text-success"></i>Unban user</a></li>
{% endif %}
{% endif %}

View File

@ -445,6 +445,31 @@
};
// ban modal
const banModal = function(link, id, name) {
document.getElementById("banModalTitle").innerHTML = `Ban @${name}`;
document.getElementById("ban-modal-link").innerHTML = `<a href="${link}">${link}</a>`;
document.getElementById("banUserButton").innerHTML = `Ban @${name}`;
document.getElementById("banUserButton").onclick = function() {
let fd = new FormData(document.getElementById("banModalForm"));
fd.append("formkey", formkey());
let xhr = new XMLHttpRequest();
xhr.open("POST", `/ban_user/${id}?form`, true);
xhr.withCredentials = true;
xhr.onload = function(){
$('#toast-post-success').toast('dispose');
$('#toast-post-success').toast('show');
document.getElementById('toast-post-success-text').innerHTML = `@${name} banned`;
}
xhr.send(fd);
}
};
//reporting
// Report Comment
@ -1344,6 +1369,11 @@
{% include "gif_modal.html" %}
{% include "delete_comment_modal.html" %}
{% include "delete_post_modal.html" %}
{% if v.admin_level > 1 %}
{% include "ban_modal.html" %}
{% endif %}
{% endif %}
{% include "expanded_image_modal.html" %}

View File

@ -179,7 +179,7 @@
{% endif %}
{% if v and v.admin_level == 6 and v.id!=p.author_id %}
<button id="ban2-{{p.id}}" class="{% if p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" href="javascript:void(0)" onclick="post_toast2('/ban_user/{{p.author_id}}?reason={{p.shortlink}}&days=1','ban2-{{p.id}}','unban2-{{p.id}}')" data-dismiss="modal"><i class="fas fa-user-minus mr-3"></i>Ban user</a></button>
<button id="ban2-{{p.id}}" data-dismiss="modal" data-toggle="modal" data-target="#banModal" onclick="banModal('{{p.permalink|full_link}}', '{{ p.author.id }}', '{{p.author.username}}')" class="{% if p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" href="javascript:void(0)"><i class="fas fa-user-minus mr-3"></i>Ban user</a></button>
<button id="unban2-{{p.id}}" class="{% if not p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" href="javascript:void(0)" onclick="post_toast2('/unban_user/{{p.author_id}}','ban2-{{p.id}}','unban2-{{p.id}}')" data-dismiss="modal"><i class="fas fa-user-minus mr-3"></i>Unban user</a></button>
{% endif %}
</ul>
@ -489,7 +489,7 @@
{% endif %}
{% if v.admin_level >=3 and v.id!=p.author_id %}
<li id="ban-{{p.id}}" class="{% if p.author.is_suspended %}d-none{% endif %} list-inline-item"><a class="text-danger" id="exile2-user-{{p.id}}" href="javascript:void(0)" onclick="post_toast2('/ban_user/{{p.author_id}}?reason={{p.shortlink}}&days=1','ban-{{p.id}}','unban-{{p.id}}')"><i class="fas fa-user-slash"></i>Ban user</a></li>
<li id="ban-{{p.id}}" class="{% if p.author.is_suspended %}d-none{% endif %} list-inline-item"><a class="text-danger" href="javascript:void(0)" data-toggle="modal" data-target="#banModal" onclick="banModal('{{p.permalink|full_link}}', '{{ p.author.id }}', '{{p.author.username}}')"><i class="fas fa-user-slash text-danger fa-fw"></i>Ban user</a></li>
<li id="unban-{{p.id}}" class="{% if not p.author.is_suspended %}d-none{% endif %} list-inline-item"><a class="text-danger" id="unexile2-user-{{p.id}}" href="javascript:void(0)" onclick="post_toast2('/unban_user/{{p.author_id}}','ban-{{p.id}}','unban-{{p.id}}')"><i class="fas fa-user-slash"></i>Unban user</a></li>
{% endif %}
{% endif %}

View File

@ -208,7 +208,7 @@
{% endif %}
{% if v.admin_level >=3 and v.id!=p.author_id %}
<li id="ban-{{p.id}}" class="{% if p.author.is_suspended %}d-none{% endif %} list-inline-item"><a class="text-danger" id="exile2-user-{{p.id}}" href="javascript:void(0)" onclick="post_toast2('/ban_user/{{p.author_id}}?reason={{p.shortlink}}&days=1','ban-{{p.id}}','unban-{{p.id}}')"><i class="fas fa-user-slash"></i>Ban user</a></li>
<li id="ban-{{p.id}}" class="{% if p.author.is_suspended %}d-none{% endif %} list-inline-item"><a class="text-danger" id="exile-comment-{{p.id}}" href="javascript:void(0)" data-toggle="modal" data-target="#banModal" onclick="banModal('{{p.permalink|full_link}}', '{{ p.author.id }}', '{{p.author.username}}')"><i class="fas fa-user-slash text-danger fa-fw"></i>Ban user</a></li>
<li id="unban-{{p.id}}" class="{% if not p.author.is_suspended %}d-none{% endif %} list-inline-item"><a class="text-danger" id="unexile2-user-{{p.id}}" href="javascript:void(0)" onclick="post_toast2('/unban_user/{{p.author_id}}','ban-{{p.id}}','unban-{{p.id}}')"><i class="fas fa-user-slash"></i>Unban user</a></li>
{% endif %}
{% endif %}
@ -371,7 +371,7 @@
{% endif %}
{% if v and v.admin_level == 6 and v.id!=p.author_id %}
<button id="ban2-{{p.id}}" class="{% if p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" href="javascript:void(0)" onclick="post_toast2('/ban_user/{{p.author_id}}?reason={{p.shortlink}}&days=1','ban2-{{p.id}}','unban2-{{p.id}}')" data-dismiss="modal"><i class="fas fa-user-minus mr-3"></i>Ban user</a></button>
<button id="ban2-{{p.id}}" data-dismiss="modal" data-toggle="modal" data-target="#banModal" onclick="banModal('{{p.permalink|full_link}}', '{{ p.author.id }}', '{{p.author.username}}')" class="{% if p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" href="javascript:void(0)"><i class="fas fa-user-minus mr-3"></i>Ban user</a></button>
<button id="unban2-{{p.id}}" class="{% if not p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" href="javascript:void(0)" onclick="post_toast2('/unban_user/{{p.author_id}}','ban2-{{p.id}}','unban2-{{p.id}}')" data-dismiss="modal"><i class="fas fa-user-minus mr-3"></i>Unban user</a></button>
{% endif %}