mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-17 17:56:29 +00:00
* Closes #16137: Remove is_staff boolean from User model * Remove default is_staff value from UserManager.create_user() * Restore staff_only on MenuItem * Introduce IsSuperuser API permission to replace IsAdminUser * Update and improve RQ task API view tests * Remove is_staff attribute assignment from RemoteUserBackend
127 lines
3.2 KiB
Python
127 lines
3.2 KiB
Python
from django import forms
|
|
from django.contrib.postgres.forms import SimpleArrayField
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from ipam.formfields import IPNetworkFormField
|
|
from ipam.validators import prefix_validator
|
|
from users.models import *
|
|
from utilities.forms import BulkEditForm
|
|
from utilities.forms.rendering import FieldSet
|
|
from utilities.forms.widgets import BulkEditNullBooleanSelect, DateTimePicker
|
|
|
|
__all__ = (
|
|
'GroupBulkEditForm',
|
|
'ObjectPermissionBulkEditForm',
|
|
'UserBulkEditForm',
|
|
'TokenBulkEditForm',
|
|
)
|
|
|
|
|
|
class UserBulkEditForm(BulkEditForm):
|
|
pk = forms.ModelMultipleChoiceField(
|
|
queryset=User.objects.all(),
|
|
widget=forms.MultipleHiddenInput
|
|
)
|
|
first_name = forms.CharField(
|
|
label=_('First name'),
|
|
max_length=150,
|
|
required=False
|
|
)
|
|
last_name = forms.CharField(
|
|
label=_('Last name'),
|
|
max_length=150,
|
|
required=False
|
|
)
|
|
is_active = forms.NullBooleanField(
|
|
required=False,
|
|
widget=BulkEditNullBooleanSelect,
|
|
label=_('Active')
|
|
)
|
|
is_superuser = forms.NullBooleanField(
|
|
required=False,
|
|
widget=BulkEditNullBooleanSelect,
|
|
label=_('Superuser status')
|
|
)
|
|
|
|
model = User
|
|
fieldsets = (
|
|
FieldSet('first_name', 'last_name', 'is_active', 'is_superuser'),
|
|
)
|
|
nullable_fields = ('first_name', 'last_name')
|
|
|
|
|
|
class GroupBulkEditForm(BulkEditForm):
|
|
pk = forms.ModelMultipleChoiceField(
|
|
queryset=Group.objects.all(),
|
|
widget=forms.MultipleHiddenInput
|
|
)
|
|
description = forms.CharField(
|
|
label=_('Description'),
|
|
max_length=200,
|
|
required=False
|
|
)
|
|
|
|
model = User
|
|
fieldsets = (
|
|
FieldSet('description'),
|
|
)
|
|
nullable_fields = ('description',)
|
|
|
|
|
|
class ObjectPermissionBulkEditForm(BulkEditForm):
|
|
pk = forms.ModelMultipleChoiceField(
|
|
queryset=ObjectPermission.objects.all(),
|
|
widget=forms.MultipleHiddenInput
|
|
)
|
|
description = forms.CharField(
|
|
label=_('Description'),
|
|
max_length=200,
|
|
required=False
|
|
)
|
|
enabled = forms.NullBooleanField(
|
|
required=False,
|
|
widget=BulkEditNullBooleanSelect,
|
|
label=_('Enabled')
|
|
)
|
|
|
|
model = ObjectPermission
|
|
fieldsets = (
|
|
FieldSet('enabled', 'description'),
|
|
)
|
|
nullable_fields = ('description',)
|
|
|
|
|
|
class TokenBulkEditForm(BulkEditForm):
|
|
pk = forms.ModelMultipleChoiceField(
|
|
queryset=Token.objects.all(),
|
|
widget=forms.MultipleHiddenInput
|
|
)
|
|
write_enabled = forms.NullBooleanField(
|
|
required=False,
|
|
widget=BulkEditNullBooleanSelect,
|
|
label=_('Write enabled')
|
|
)
|
|
description = forms.CharField(
|
|
max_length=200,
|
|
required=False,
|
|
label=_('Description')
|
|
)
|
|
expires = forms.DateTimeField(
|
|
required=False,
|
|
widget=DateTimePicker(),
|
|
label=_('Expires')
|
|
)
|
|
allowed_ips = SimpleArrayField(
|
|
base_field=IPNetworkFormField(validators=[prefix_validator]),
|
|
required=False,
|
|
label=_('Allowed IPs')
|
|
)
|
|
|
|
model = Token
|
|
fieldsets = (
|
|
FieldSet('write_enabled', 'description', 'expires', 'allowed_ips'),
|
|
)
|
|
nullable_fields = (
|
|
'expires', 'description', 'allowed_ips',
|
|
)
|