mirror of
https://github.com/eduardogsilva/wireguard_webadmin.git
synced 2025-08-26 13:21:14 +00:00
User toggle for webconsole and enhanced filter
This commit is contained in:
@@ -12,6 +12,8 @@ class UserAclForm(forms.Form):
|
||||
username = forms.CharField(max_length=150)
|
||||
password1 = forms.CharField(widget=forms.PasswordInput, required=False, label="Password")
|
||||
password2 = forms.CharField(widget=forms.PasswordInput, required=False, label="Password confirmation")
|
||||
enable_console = forms.BooleanField(required=False, label="Enable Console")
|
||||
enable_enhanced_filter = forms.BooleanField(required=False, label="Enable Enhanced Filter")
|
||||
user_level = forms.ChoiceField(choices=UserAcl.user_level.field.choices, required=True, label="User Level")
|
||||
peer_groups = forms.ModelMultipleChoiceField(
|
||||
queryset=PeerGroup.objects.all(),
|
||||
@@ -27,9 +29,16 @@ class UserAclForm(forms.Form):
|
||||
self.fields['username'].initial = self.instance.username
|
||||
self.fields['username'].widget.attrs['readonly'] = True
|
||||
self.fields['peer_groups'].initial = self.instance.useracl.peer_groups.all()
|
||||
self.fields['enable_console'].initial = self.instance.useracl.enable_console
|
||||
self.fields['enable_enhanced_filter'].initial = self.instance.useracl.enable_enhanced_filter
|
||||
else:
|
||||
self.fields['password1'].required = True
|
||||
self.fields['password2'].required = True
|
||||
self.fields['enable_console'].initial = True
|
||||
self.fields['enable_enhanced_filter'].initial = False
|
||||
|
||||
self.fields['enable_console'].label = "Console"
|
||||
self.fields['enable_enhanced_filter'].label = "Enhanced Filter"
|
||||
|
||||
self.helper = FormHelper()
|
||||
self.helper.form_method = 'post'
|
||||
@@ -60,6 +69,14 @@ class UserAclForm(forms.Form):
|
||||
Column('peer_groups', css_class='form-group col-md-12 mb-0'),
|
||||
css_class='form-row'
|
||||
),
|
||||
Row(
|
||||
Column('enable_console', css_class='form-group col-md-12 mb-0'),
|
||||
css_class='form-row'
|
||||
),
|
||||
Row(
|
||||
Column('enable_enhanced_filter', css_class='form-group col-md-12 mb-0'),
|
||||
css_class='form-row'
|
||||
),
|
||||
Row(
|
||||
Column(
|
||||
Submit('submit', 'Save', css_class='btn btn-success'),
|
||||
@@ -100,6 +117,8 @@ class UserAclForm(forms.Form):
|
||||
password = self.cleaned_data.get('password1')
|
||||
user_level = self.cleaned_data['user_level']
|
||||
peer_groups = self.cleaned_data.get('peer_groups', [])
|
||||
enable_console = self.cleaned_data.get('enable_console', False)
|
||||
enable_enhanced_filter = self.cleaned_data.get('enable_enhanced_filter', False)
|
||||
|
||||
if self.instance:
|
||||
user = self.instance
|
||||
@@ -115,7 +134,9 @@ class UserAclForm(forms.Form):
|
||||
user_acl, created = UserAcl.objects.update_or_create(
|
||||
user=user,
|
||||
defaults={
|
||||
'user_level': user_level
|
||||
'user_level': user_level,
|
||||
'enable_console': enable_console,
|
||||
'enable_enhanced_filter': enable_enhanced_filter
|
||||
}
|
||||
)
|
||||
|
||||
|
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 5.1.5 on 2025-01-21 15:06
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('user_manager', '0004_useracl_peer_groups'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='useracl',
|
||||
name='enable_console',
|
||||
field=models.BooleanField(default=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='useracl',
|
||||
name='enable_enhanced_filter',
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
]
|
@@ -14,6 +14,8 @@ class UserAcl(models.Model):
|
||||
(50, 'Administrator'),
|
||||
))
|
||||
peer_groups = models.ManyToManyField(PeerGroup, blank=True)
|
||||
enable_console = models.BooleanField(default=True)
|
||||
enable_enhanced_filter = models.BooleanField(default=False)
|
||||
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
updated = models.DateTimeField(auto_now=True)
|
||||
|
@@ -156,6 +156,12 @@ def view_manage_user(request):
|
||||
<h4>Peer Groups</h4>
|
||||
<p>Select which peer groups this user can access. If no peer groups are selected, the user will have access to all peers.</p>
|
||||
|
||||
<h4>Console</h4>
|
||||
<p>Enable or disable web console access for this user.</p>
|
||||
|
||||
<h4>Enhanced Filter</h4>
|
||||
<p>This option filters the API status response to include only peers that the user has access to. Depending on the size of your environment, enabling this option may impact performance. To mitigate this, consider increasing the "Web Refresh Interval" to reduce the number of requests.</p>
|
||||
|
||||
'''
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user