mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-17 01:02:18 -06:00
Clean up TokenForm
This commit is contained in:
@@ -8,6 +8,7 @@ from users.models import Group, ObjectPermission, Token, User
|
|||||||
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm
|
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm
|
||||||
from utilities.forms.fields import DynamicModelMultipleChoiceField
|
from utilities.forms.fields import DynamicModelMultipleChoiceField
|
||||||
from utilities.forms.rendering import FieldSet
|
from utilities.forms.rendering import FieldSet
|
||||||
|
from utilities.forms.utils import add_blank_choice
|
||||||
from utilities.forms.widgets import DateTimePicker
|
from utilities.forms.widgets import DateTimePicker
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
@@ -114,7 +115,7 @@ class TokenFilterForm(SavedFiltersMixin, FilterForm):
|
|||||||
FieldSet('version', 'user_id', 'write_enabled', 'expires', 'last_used', name=_('Token')),
|
FieldSet('version', 'user_id', 'write_enabled', 'expires', 'last_used', name=_('Token')),
|
||||||
)
|
)
|
||||||
version = forms.ChoiceField(
|
version = forms.ChoiceField(
|
||||||
choices=TokenVersionChoices,
|
choices=add_blank_choice(TokenVersionChoices),
|
||||||
required=False,
|
required=False,
|
||||||
)
|
)
|
||||||
user_id = DynamicModelMultipleChoiceField(
|
user_id = DynamicModelMultipleChoiceField(
|
||||||
|
|||||||
@@ -16,11 +16,7 @@ from users.choices import TokenVersionChoices
|
|||||||
from users.constants import *
|
from users.constants import *
|
||||||
from users.models import *
|
from users.models import *
|
||||||
from utilities.data import flatten_dict
|
from utilities.data import flatten_dict
|
||||||
from utilities.forms.fields import (
|
from utilities.forms.fields import ContentTypeMultipleChoiceField, DynamicModelMultipleChoiceField, JSONField
|
||||||
ContentTypeMultipleChoiceField,
|
|
||||||
DynamicModelMultipleChoiceField,
|
|
||||||
JSONField,
|
|
||||||
)
|
|
||||||
from utilities.forms.rendering import FieldSet
|
from utilities.forms.rendering import FieldSet
|
||||||
from utilities.forms.widgets import DateTimePicker, SplitMultiSelectWidget
|
from utilities.forms.widgets import DateTimePicker, SplitMultiSelectWidget
|
||||||
from utilities.permissions import qs_filter_from_constraints
|
from utilities.permissions import qs_filter_from_constraints
|
||||||
@@ -155,17 +151,17 @@ class UserTokenForm(forms.ModelForm):
|
|||||||
|
|
||||||
# Omit the key field when editing an existing token if token retrieval is not permitted
|
# Omit the key field when editing an existing token if token retrieval is not permitted
|
||||||
if self.instance.v1 and settings.ALLOW_TOKEN_RETRIEVAL:
|
if self.instance.v1 and settings.ALLOW_TOKEN_RETRIEVAL:
|
||||||
self.fields['token'].initial = self.instance.key
|
self.initial['token'] = self.instance.plaintext
|
||||||
else:
|
else:
|
||||||
del self.fields['token']
|
del self.fields['token']
|
||||||
|
|
||||||
# Generate an initial random key if none has been specified
|
# Generate an initial random key if none has been specified
|
||||||
if self.instance._state.adding and not self.initial.get('token'):
|
elif self.instance._state.adding and not self.initial.get('token'):
|
||||||
self.initial['version'] = TokenVersionChoices.V2
|
self.initial['version'] = TokenVersionChoices.V2
|
||||||
self.initial['token'] = Token.generate()
|
self.initial['token'] = Token.generate()
|
||||||
|
|
||||||
def save(self, commit=True):
|
def save(self, commit=True):
|
||||||
if self.cleaned_data.get('token'):
|
if self.instance._state.adding and self.cleaned_data.get('token'):
|
||||||
self.instance.token = self.cleaned_data['token']
|
self.instance.token = self.cleaned_data['token']
|
||||||
|
|
||||||
return super().save(commit=commit)
|
return super().save(commit=commit)
|
||||||
@@ -177,14 +173,10 @@ class TokenForm(UserTokenForm):
|
|||||||
label=_('User')
|
label=_('User')
|
||||||
)
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta(UserTokenForm.Meta):
|
||||||
model = Token
|
|
||||||
fields = [
|
fields = [
|
||||||
'version', 'token', 'user', 'write_enabled', 'expires', 'description', 'allowed_ips',
|
'version', 'token', 'user', 'write_enabled', 'expires', 'description', 'allowed_ips',
|
||||||
]
|
]
|
||||||
widgets = {
|
|
||||||
'expires': DateTimePicker(),
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class UserForm(forms.ModelForm):
|
class UserForm(forms.ModelForm):
|
||||||
|
|||||||
Reference in New Issue
Block a user