Admins can edit bans now.

This commit is contained in:
some weird guy
2023-08-25 16:51:04 -07:00
parent 5b5bbc859e
commit 60ff989332
6 changed files with 47 additions and 9 deletions
+9 -1
View File
@@ -125,4 +125,12 @@ class Give_Ban_Form(forms.ModelForm):
return timezone.now() + timedelta(days=365.25*100) # same exact thing done in indigo. return timezone.now() + timedelta(days=365.25*100) # same exact thing done in indigo.
class Meta: class Meta:
model = Ban model = Ban
fields = ['reason', 'expiry_date'] fields = ['reason', 'expiry_date']
class Give_Ban_Form_Edit(forms.ModelForm):
reason = forms.CharField(required=True, widget=forms.Textarea(attrs={'class': 'textarea'}))
expiry_date = forms.DateTimeField(widget=forms.DateTimeInput(attrs={'type': 'datetime-local', 'class': 'DateTimeInput'}, format='%Y-%m-%dT%H:%M'))
active = forms.BooleanField(required=False)
class Meta:
model = Ban
fields = ['reason', 'expiry_date', 'active']
+1 -1
View File
@@ -1789,7 +1789,7 @@ class UserBlock(models.Model):
class AuditLog(models.Model): class AuditLog(models.Model):
id = models.AutoField(primary_key=True) id = models.AutoField(primary_key=True)
created = models.DateTimeField(auto_now_add=True) created = models.DateTimeField(auto_now_add=True)
type = models.SmallIntegerField(choices=((0, "Post delete"), (1, "Comment delete"), (2, "User edit"), (3, "Disable comments"), (4, "Community edit"), )) type = models.SmallIntegerField(choices=((0, "Post delete"), (1, "Comment delete"), (2, "User edit"), (3, "Disable comments"), (4, "Community edit"), (5, "Ban user"), (6, "Edit ban for user"), ))
post = models.ForeignKey(Post, related_name='audit_post', null=True, on_delete=models.CASCADE) post = models.ForeignKey(Post, related_name='audit_post', null=True, on_delete=models.CASCADE)
comment = models.ForeignKey(Comment, related_name='audit_comment', null=True, on_delete=models.CASCADE) comment = models.ForeignKey(Comment, related_name='audit_comment', null=True, on_delete=models.CASCADE)
user = models.ForeignKey(User, related_name='audit_user', null=True, on_delete=models.CASCADE) user = models.ForeignKey(User, related_name='audit_user', null=True, on_delete=models.CASCADE)
@@ -20,6 +20,20 @@
<p class="label">This user is banned already.</p> <p class="label">This user is banned already.</p>
<p>The ban will expire on: {{ active_ban.expiry_date }}</p> <p>The ban will expire on: {{ active_ban.expiry_date }}</p>
<p>Time remaining: {{ active_ban.expiry_date|timeuntil }}</p> <p>Time remaining: {{ active_ban.expiry_date|timeuntil }}</p>
<li class="setting">
<p class="settings-label">Edit Reasoning:</p>
{{ form.reason }}
<p class="settings-label">Change Expiry:</p>
{{ form.expiry_date }}
<p class="settings-label">Active:</p>
{{ form.active }}
<p class='note'>Uncheck this to unban {{ user.username }}.</p>
</li>
{% csrf_token %}
<div class="form-buttons">
<input type="submit" class="button apply-button" value="Edit ban for {{ user.username }}">
</div>
{% endif %} {% endif %}
</form></div></div> </form></div></div>
{% endblock %} {% endblock %}
+15 -6
View File
@@ -1749,17 +1749,26 @@ def user_tools_bams(request, username):
if user.has_authority(request.user): if user.has_authority(request.user):
return HttpResponseForbidden() return HttpResponseForbidden()
if request.method == 'POST': if request.method == 'POST':
form = Give_Ban_Form(request.POST) if not user.banned():
if form.is_valid(): form = Give_Ban_Form(request.POST)
if form.is_valid():
ban = form.save(commit=False)
ban.to = user
ban.by = request.user
ban.ip_address = user.addr
ban.save()
AuditLog.objects.create(type=5, user=user, by=request.user)
return redirect('main:user-view', user)
else:
form = Give_Ban_Form_Edit(request.POST, instance=user.active_ban())
ban = form.save(commit=False) ban = form.save(commit=False)
ban.to = user
ban.by = request.user
ban.ip_address = user.addr
ban.save() ban.save()
AuditLog.objects.create(type=6, user=user, by=request.user)
return redirect('main:user-view', user) return redirect('main:user-view', user)
if not user.banned(): if not user.banned():
form = Give_Ban_Form() form = Give_Ban_Form()
else: form = None else:
form = Give_Ban_Form_Edit(instance=user.active_ban())
return render(request, 'closedverse_main/man/manage_bans.html', { return render(request, 'closedverse_main/man/manage_bans.html', {
'user': user, 'user': user,
'banned': user.banned(), 'banned': user.banned(),
+4 -1
View File
@@ -195,7 +195,10 @@ form.search input[type="submit"] {
border-bottom-color: #000; border-bottom-color: #000;
box-shadow: inset 0 0.5px 0 rgba(0, 0, 0, 0.9); box-shadow: inset 0 0.5px 0 rgba(0, 0, 0, 0.9);
} }
.DateTimeInput {
background: var(--theme-darker, #161626);
color: #fff;
}
.topic-categories-container { .topic-categories-container {
background: var(--theme-dark, #202030); background: var(--theme-dark, #202030);
-webkit-box-shadow: 0 1px 0 var(--theme-dark, #202030); -webkit-box-shadow: 0 1px 0 var(--theme-dark, #202030);
+4
View File
@@ -4657,6 +4657,10 @@ div#activity-feed-tutorial.no-content p.tleft {
padding: 0 5px 10px 10px; padding: 0 5px 10px 10px;
line-height: 1.2; line-height: 1.2;
} }
.DateTimeInput {
border-radius: 6px;
border: 1px solid #000;
}
.platform-tag { .platform-tag {
position: static; position: static;
float: left; float: left;