File tree Expand file tree Collapse file tree 2 files changed +15
-5
lines changed Expand file tree Collapse file tree 2 files changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -96,21 +96,28 @@ def is_safe_url(target):
96
96
)
97
97
98
98
99
+ def get_next_url (url_next_param : Optional [str ]):
100
+ next_url = url_next_param if url_next_param else None
101
+ if not is_safe_url (next_url ):
102
+ return fail (400 , "The URL isn't safe." )
103
+ return redirect (next_url or url_for ('main' ))
104
+
105
+
99
106
@webapp .route ('/login' , methods = ['GET' , 'POST' ])
100
107
def login ():
101
108
if current_user .is_authenticated :
102
- return redirect ( url_for ( 'main ' ))
109
+ return get_next_url ( request . args . get ( 'next ' ))
103
110
104
111
username = request .form .get ('username' )
105
112
password = request .form .get ('password' )
113
+ next_page = request .form .get ('next' )
106
114
user = User .get_or_none (username = username )
107
115
108
116
if user is not None and user .is_password_valid (password ):
109
117
login_user (user )
110
- next_url = request .args .get ('next_url' )
111
- if not is_safe_url (next_url ):
112
- return fail (400 , "The URL isn't safe." )
113
- return redirect (next_url or url_for ('main' ))
118
+ return get_next_url (next_page )
119
+ elif user is not None :
120
+ return redirect (url_for ('login' , ** {'next' : next_page }))
114
121
115
122
return render_template ('login.html' )
116
123
Original file line number Diff line number Diff line change @@ -20,6 +20,9 @@ <h1 id="main-title" class="h3 font-weight-normal">{{ _('התחברות') }}</h1>
20
20
< div class ="form-group ">
21
21
< input class ="form-control form-control-lg " type ="hidden " name ="csrf_token " id ="csrf_token " value ="{{ csrf_token() }} " required >
22
22
</ div >
23
+ < div class ="form-group ">
24
+ < input class ="form-control form-control-lg " type ="hidden " name ="next " id ="next " value ="{{ request.args.get('next', '') }} ">
25
+ </ div >
23
26
< button class ="btn btn-primary btn-lg btn-block "> {{ _('התחבר') }}</ button >
24
27
</ form >
25
28
</ div >
You can’t perform that action at this time.
0 commit comments