mirror of
https://github.com/Mistake35/Cedar-Django.git
synced 2026-07-18 00:21:14 +10:00
Admins can edit bans now.
This commit is contained in:
@@ -126,3 +126,11 @@ class Give_Ban_Form(forms.ModelForm):
|
|||||||
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']
|
||||||
@@ -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 %}
|
||||||
@@ -1749,6 +1749,7 @@ 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':
|
||||||
|
if not user.banned():
|
||||||
form = Give_Ban_Form(request.POST)
|
form = Give_Ban_Form(request.POST)
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
ban = form.save(commit=False)
|
ban = form.save(commit=False)
|
||||||
@@ -1756,10 +1757,18 @@ def user_tools_bams(request, username):
|
|||||||
ban.by = request.user
|
ban.by = request.user
|
||||||
ban.ip_address = user.addr
|
ban.ip_address = user.addr
|
||||||
ban.save()
|
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.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
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user