소스 검색

Fixes #16758: Create language cookie if required (#16764)

* Fixes #16758: Create language cookie if required

* Align language cookie with session lifetime
Martin 1 년 전
부모
커밋
6a1245c792
2개의 변경된 파일7개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      netbox/account/views.py
  2. 5 0
      netbox/netbox/middleware.py

+ 2 - 2
netbox/account/views.py

@@ -111,7 +111,7 @@ class LoginView(View):
 
             # Set the user's preferred language (if any)
             if language := request.user.config.get('locale.language'):
-                response.set_cookie(settings.LANGUAGE_COOKIE_NAME, language)
+                response.set_cookie(settings.LANGUAGE_COOKIE_NAME, language, max_age=request.session.get_expiry_age())
 
             return response
 
@@ -206,7 +206,7 @@ class UserConfigView(LoginRequiredMixin, View):
 
             # Set/clear language cookie
             if language := form.cleaned_data['locale.language']:
-                response.set_cookie(settings.LANGUAGE_COOKIE_NAME, language)
+                response.set_cookie(settings.LANGUAGE_COOKIE_NAME, language, max_age=request.session.get_expiry_age())
             else:
                 response.delete_cookie(settings.LANGUAGE_COOKIE_NAME)
 

+ 5 - 0
netbox/netbox/middleware.py

@@ -47,6 +47,11 @@ class CoreMiddleware:
         with event_tracking(request):
             response = self.get_response(request)
 
+        # Check if language cookie should be renewed
+        if request.user.is_authenticated and settings.SESSION_SAVE_EVERY_REQUEST:
+            if language := request.user.config.get('locale.language'):
+                response.set_cookie(settings.LANGUAGE_COOKIE_NAME, language, max_age=request.session.get_expiry_age())
+
         # Attach the unique request ID as an HTTP header.
         response['X-Request-ID'] = request.id