mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-13 14:30:17 +02:00
Corrected broadcast form group field validation
This commit is contained in:
parent
32a6c1307f
commit
4612382ca1
@ -1,20 +1,7 @@
|
|||||||
from django import forms
|
from django import forms
|
||||||
from django.contrib.auth.models import Group
|
|
||||||
from util import check_if_user_has_permission
|
|
||||||
|
|
||||||
|
|
||||||
class JabberBroadcastForm(forms.Form):
|
class JabberBroadcastForm(forms.Form):
|
||||||
def __init__(self, user, *args, **kwargs):
|
group = forms.ChoiceField(widget=forms.Select)
|
||||||
super(JabberBroadcastForm, self).__init__(*args, **kwargs)
|
|
||||||
allchoices = []
|
|
||||||
if check_if_user_has_permission(user, 'jabber_broadcast_all'):
|
|
||||||
allchoices.append(('all', 'all'))
|
|
||||||
for g in Group.objects.all():
|
|
||||||
allchoices.append((str(g.name), str(g.name)))
|
|
||||||
else:
|
|
||||||
for g in user.groups.all():
|
|
||||||
allchoices.append((str(g.name), str(g.name)))
|
|
||||||
self.fields['group'] = forms.ChoiceField(choices=allchoices, widget=forms.Select)
|
|
||||||
message = forms.CharField(widget=forms.Textarea)
|
message = forms.CharField(widget=forms.Textarea)
|
||||||
|
|
||||||
|
|
||||||
|
@ -70,8 +70,17 @@ def fleet_formatter_view(request):
|
|||||||
def jabber_broadcast_view(request):
|
def jabber_broadcast_view(request):
|
||||||
logger.debug("jabber_broadcast_view called by user %s" % request.user)
|
logger.debug("jabber_broadcast_view called by user %s" % request.user)
|
||||||
success = False
|
success = False
|
||||||
|
allchoices = []
|
||||||
|
if check_if_user_has_permission(request.user, 'jabber_broadcast_all'):
|
||||||
|
allchoices.append(('all', 'all'))
|
||||||
|
for g in Group.objects.all():
|
||||||
|
allchoices.append((str(g.name), str(g.name)))
|
||||||
|
else:
|
||||||
|
for g in request.user.groups.all():
|
||||||
|
allchoices.append((str(g.name), str(g.name)))
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
form = JabberBroadcastForm(request.POST)
|
form = JabberBroadcastForm(request.POST)
|
||||||
|
form.fields['group'].choices = allchoices
|
||||||
logger.debug("Received POST request containing form, valid: %s" % form.is_valid())
|
logger.debug("Received POST request containing form, valid: %s" % form.is_valid())
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
user_info = AuthServicesInfo.objects.get(user=request.user)
|
user_info = AuthServicesInfo.objects.get(user=request.user)
|
||||||
@ -92,7 +101,8 @@ def jabber_broadcast_view(request):
|
|||||||
success = True
|
success = True
|
||||||
logger.info("Sent jabber broadcast on behalf of user %s" % request.user)
|
logger.info("Sent jabber broadcast on behalf of user %s" % request.user)
|
||||||
else:
|
else:
|
||||||
form = JabberBroadcastForm(request.user)
|
form = JabberBroadcastForm()
|
||||||
|
form.fields['group'].choices = allchoices
|
||||||
logger.debug("Generated broadcast form for user %s containing %s groups" % (request.user, len(form.fields['group'].choices)))
|
logger.debug("Generated broadcast form for user %s containing %s groups" % (request.user, len(form.fields['group'].choices)))
|
||||||
|
|
||||||
context = {'form': form, 'success': success}
|
context = {'form': form, 'success': success}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user