Просмотр исходного кода

Closes #9741: Check for UserConfig instance during user login

jeremystretch 3 лет назад
Родитель
Сommit
fe2fae5b86
2 измененных файлов с 12 добавлено и 2 удалено
  1. 4 0
      docs/release-notes/version-3.2.md
  2. 8 2
      netbox/users/views.py

+ 4 - 0
docs/release-notes/version-3.2.md

@@ -2,6 +2,10 @@
 
 ## v3.2.7 (FUTURE)
 
+### Enhancements
+
+* [#9741](https://github.com/netbox-community/netbox/issues/9741) - Check for UserConfig instance during user login
+
 ### Bug Fixes
 
 * [#9715](https://github.com/netbox-community/netbox/issues/9715) - Fix `SOCIAL_AUTH_PIPELINE` config parameter not taking effect

+ 8 - 2
netbox/users/views.py

@@ -20,7 +20,7 @@ from netbox.authentication import get_auth_backend_display
 from netbox.config import get_config
 from utilities.forms import ConfirmationForm
 from .forms import LoginForm, PasswordChangeForm, TokenForm, UserConfigForm
-from .models import Token
+from .models import Token, UserConfig
 
 
 #
@@ -69,7 +69,13 @@ class LoginView(View):
             # Authenticate user
             auth_login(request, form.get_user())
             logger.info(f"User {request.user} successfully authenticated")
-            messages.info(request, "Logged in as {}.".format(request.user))
+            messages.info(request, f"Logged in as {request.user}.")
+
+            # Ensure the user has a UserConfig defined. (This should normally be handled by
+            # create_userconfig() on user creation.)
+            if not hasattr(request.user, 'config'):
+                config = get_config()
+                UserConfig(user=request.user, data=config.DEFAULT_USER_PREFERENCES).save()
 
             return self.redirect_to_next(request, logger)