File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 88#
99
1010import time
11+ from urllib .parse import urlencode
1112
1213from django .shortcuts import redirect
1314from django .utils .deprecation import MiddlewareMixin
1415
16+ SESSION_TIMEOUT = 900 # 15 minutes
17+
1518
1619class AltchaProtectionMiddleware (MiddlewareMixin ):
1720 PROTECTED_PREFIXES = (
@@ -20,23 +23,23 @@ class AltchaProtectionMiddleware(MiddlewareMixin):
2023 "/advisories/" ,
2124 "/affected-by-advisories/v2/" ,
2225 "/fixing-advisories/v2/" ,
26+ "/pipelines/" ,
2327 )
2428
25- SESSION_TIMEOUT = 900 # 15 minutes
26-
2729 def __call__ (self , request ):
2830 protected = any (request .path .startswith (prefix ) for prefix in self .PROTECTED_PREFIXES )
2931
3032 if not protected :
3133 return self .get_response (request )
3234
3335 verified_at = request .session .get ("altcha_verified_at" )
36+ next_url = request .get_full_path ()
3437
3538 if not verified_at :
36- return redirect (f"/altcha/" )
39+ return redirect (f"/altcha/? { urlencode ({ 'next' : next_url }) } " )
3740
38- if time .time () - verified_at > self . SESSION_TIMEOUT :
41+ if time .time () - verified_at > SESSION_TIMEOUT :
3942 request .session .pop ("altcha_verified_at" , None )
40- return redirect (f"/altcha/" )
43+ return redirect (f"/altcha/? { urlencode ({ 'next' : next_url }) } " )
4144
4245 return self .get_response (request )
Original file line number Diff line number Diff line change @@ -1167,4 +1167,6 @@ class AltchaView(FormView):
11671167
11681168 def form_valid (self , form ):
11691169 self .request .session ["altcha_verified_at" ] = time .time ()
1170- return redirect ("/" )
1170+
1171+ next_url = self .request .GET .get ("next" , "/" )
1172+ return redirect (next_url )
You can’t perform that action at this time.
0 commit comments