Skip to content

Commit 317bef6

Browse files
12795 custom user model (#15005)
* 12795 users.User migration * 12795 users.User migration * 12795 review changes * 12795 fix user model registration * 12795 fix user model registration * 12795 update migration * 12795 update migration * 12795 update migration * 12795 add comment to migration db_table * Tweak import to avoid class name collision * 12795 add comment for _register_features requirement --------- Co-authored-by: Jeremy Stretch <[email protected]>
1 parent 5d9311e commit 317bef6

File tree

19 files changed

+132
-70
lines changed

19 files changed

+132
-70
lines changed

netbox/netbox/navigation/menu.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -377,19 +377,19 @@
377377
items=(
378378
# Proxy model for auth.User
379379
MenuItem(
380-
link=f'users:netboxuser_list',
380+
link=f'users:user_list',
381381
link_text=_('Users'),
382382
permissions=[f'auth.view_user'],
383383
staff_only=True,
384384
buttons=(
385385
MenuItemButton(
386-
link=f'users:netboxuser_add',
386+
link=f'users:user_add',
387387
title='Add',
388388
icon_class='mdi mdi-plus-thick',
389389
permissions=[f'auth.add_user']
390390
),
391391
MenuItemButton(
392-
link=f'users:netboxuser_import',
392+
link=f'users:user_import',
393393
title='Import',
394394
icon_class='mdi mdi-upload',
395395
permissions=[f'auth.add_user']

netbox/netbox/settings.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -455,6 +455,8 @@ def _setting(name, default=None):
455455
'netbox.authentication.ObjectPermissionBackend',
456456
]
457457

458+
AUTH_USER_MODEL = 'users.User'
459+
458460
# Time zones
459461
USE_TZ = True
460462

@@ -595,6 +597,8 @@ def _setting(name, default=None):
595597
SOCIAL_AUTH_JSONFIELD_ENABLED = True
596598
SOCIAL_AUTH_CLEAN_USERNAME_FUNCTION = 'users.utils.clean_username'
597599

600+
SOCIAL_AUTH_USER_MODEL = AUTH_USER_MODEL
601+
598602
#
599603
# Django Prometheus
600604
#

netbox/templates/users/group.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ <h5 class="card-header">{% trans "Group" %}</h5>
2525
<h5 class="card-header">{% trans "Users" %}</h5>
2626
<div class="list-group list-group-flush">
2727
{% for user in object.user_set.all %}
28-
<a href="{% url 'users:netboxuser' pk=user.pk %}" class="list-group-item list-group-item-action">{{ user }}</a>
28+
<a href="{% url 'users:user' pk=user.pk %}" class="list-group-item list-group-item-action">{{ user }}</a>
2929
{% empty %}
3030
<div class="list-group-item text-muted">{% trans "None" %}</div>
3131
{% endfor %}

netbox/templates/users/objectpermission.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ <h5 class="card-header">{% trans "Object Types" %}</h5>
7272
<h5 class="card-header">{% trans "Assigned Users" %}</h5>
7373
<div class="list-group list-group-flush">
7474
{% for user in object.users.all %}
75-
<a href="{% url 'users:netboxuser' pk=user.pk %}" class="list-group-item list-group-item-action">{{ user }}</a>
75+
<a href="{% url 'users:user' pk=user.pk %}" class="list-group-item list-group-item-action">{{ user }}</a>
7676
{% empty %}
7777
<div class="list-group-item text-muted">{% trans "None" %}</div>
7878
{% endfor %}

netbox/templates/users/token.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ <h5 class="card-header">{% trans "Token" %}</h5>
2020
<tr>
2121
<th scope="row">{% trans "User" %}</th>
2222
<td>
23-
<a href="{% url 'users:netboxuser' pk=object.user.pk %}">{{ object.user }}</a>
23+
<a href="{% url 'users:user' pk=object.user.pk %}">{{ object.user }}</a>
2424
</td>
2525
</tr>
2626
<tr>

netbox/users/admin.py

Lines changed: 0 additions & 6 deletions
This file was deleted.

netbox/users/apps.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,14 @@ class UsersConfig(AppConfig):
66

77
def ready(self):
88
import users.signals
9+
from .models import NetBoxGroup, ObjectPermission, Token, User, UserConfig
10+
from netbox.models.features import _register_features
11+
12+
# have to register these manually as the signal handler for class_prepared does
13+
# not get registered until after these models are loaded. Any models defined in
14+
# users.models should be registered here.
15+
_register_features(NetBoxGroup)
16+
_register_features(ObjectPermission)
17+
_register_features(Token)
18+
_register_features(User)
19+
_register_features(UserConfig)

netbox/users/forms/bulk_edit.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
class UserBulkEditForm(forms.Form):
1919
pk = forms.ModelMultipleChoiceField(
20-
queryset=NetBoxUser.objects.all(),
20+
queryset=User.objects.all(),
2121
widget=forms.MultipleHiddenInput
2222
)
2323
first_name = forms.CharField(
@@ -46,7 +46,7 @@ class UserBulkEditForm(forms.Form):
4646
label=_('Superuser status')
4747
)
4848

49-
model = NetBoxUser
49+
model = User
5050
fieldsets = (
5151
(None, ('first_name', 'last_name', 'is_active', 'is_staff', 'is_superuser')),
5252
)

netbox/users/forms/bulk_import.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class Meta:
2323
class UserImportForm(CSVModelForm):
2424

2525
class Meta:
26-
model = NetBoxUser
26+
model = User
2727
fields = (
2828
'username', 'first_name', 'last_name', 'email', 'password', 'is_staff',
2929
'is_active', 'is_superuser'

netbox/users/forms/filtersets.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from netbox.forms import NetBoxModelFilterSetForm
77
from netbox.forms.mixins import SavedFiltersMixin
8-
from users.models import NetBoxGroup, NetBoxUser, ObjectPermission, Token
8+
from users.models import NetBoxGroup, User, ObjectPermission, Token
99
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm
1010
from utilities.forms.fields import DynamicModelMultipleChoiceField
1111
from utilities.forms.widgets import DateTimePicker
@@ -26,7 +26,7 @@ class GroupFilterForm(NetBoxModelFilterSetForm):
2626

2727

2828
class UserFilterForm(NetBoxModelFilterSetForm):
29-
model = NetBoxUser
29+
model = User
3030
fieldsets = (
3131
(None, ('q', 'filter_id',)),
3232
(_('Group'), ('group_id',)),

0 commit comments

Comments
 (0)