11import logging
22
3- from django .shortcuts import render
3+ from django .shortcuts import render , redirect
44
55from efile .utils .config_loader import config_loader
66
@@ -12,6 +12,9 @@ def efile_expert_form(request, jurisdiction):
1212 # Log all GET parameters for debugging
1313 logger .debug (f"Expert form accessed with GET parameters: { dict (request .GET )} " )
1414
15+ if not request .user .is_authenticated :
16+ return redirect ("efile_login" , jurisdiction = jurisdiction )
17+
1518 # Check if we need to clear cache (only when explicitly coming from options page button)
1619 clear_cache = request .GET .get ("clear_cache" , "false" ).lower () == "true"
1720 from_options = request .GET .get ("from_options" , "false" ).lower () == "true"
@@ -21,19 +24,19 @@ def efile_expert_form(request, jurisdiction):
2124 # Only clear cache if both conditions are met: clear_cache=true AND from_options=true
2225 if clear_cache and from_options :
2326 # Store auth info before clearing everything
24- auth_tokens = request .session .get ("auth_tokens" , None )
25- user_email = request .session .get ("user_email" , None )
27+ to_save = {
28+ k : request .session .get (k , None )
29+ for k in ["auth_tokens" , "user_email" , "_auth_user_id" , "_auth_user_backend" , "_auth_user_hash" ]
30+ }
2631
2732 logger .debug ("Before cache clear - session keys: %s" , list (request .session .keys ()))
2833
2934 # Clear ALL session data
3035 request .session .flush ()
3136
32- # Restore only essential auth info
33- if auth_tokens :
34- request .session ["auth_tokens" ] = auth_tokens
35- if user_email :
36- request .session ["user_email" ] = user_email
37+ for key , value in to_save .items ():
38+ if value :
39+ request .session [key ] = value
3740
3841 # Force session to save changes
3942 request .session .modified = True
0 commit comments