| 
									
										
										
										
											2015-08-18 15:22:28 -07:00
										 |  |  | const pathsOfNoReturn = [ | 
					
						
							|  |  |  |   'link', | 
					
						
							|  |  |  |   'auth', | 
					
						
							|  |  |  |   'login', | 
					
						
							|  |  |  |   'logout', | 
					
						
							|  |  |  |   'signin', | 
					
						
							|  |  |  |   'signup', | 
					
						
							|  |  |  |   'fonts', | 
					
						
							|  |  |  |   'favicon', | 
					
						
							|  |  |  |   'js', | 
					
						
							|  |  |  |   'css' | 
					
						
							|  |  |  | ]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-07 11:04:44 +05:30
										 |  |  | const pathsAllowedList = ['challenges', 'map', 'commit']; | 
					
						
							| 
									
										
										
										
											2015-09-23 14:54:08 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-18 15:22:28 -07:00
										 |  |  | const pathsOfNoReturnRegex = new RegExp(pathsOfNoReturn.join('|'), 'i'); | 
					
						
							| 
									
										
										
										
											2020-09-07 11:04:44 +05:30
										 |  |  | const pathsAllowedRegex = new RegExp(pathsAllowedList.join('|'), 'i'); | 
					
						
							| 
									
										
										
										
											2015-08-18 15:22:28 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-04 01:25:34 -07:00
										 |  |  | export default function addReturnToUrl() { | 
					
						
							|  |  |  |   return function(req, res, next) { | 
					
						
							|  |  |  |     // Remember original destination before login.
 | 
					
						
							|  |  |  |     var path = req.path.split('/')[1]; | 
					
						
							| 
									
										
										
										
											2015-08-18 15:22:28 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-23 14:54:08 -07:00
										 |  |  |     if ( | 
					
						
							|  |  |  |       req.method !== 'GET' || | 
					
						
							|  |  |  |       pathsOfNoReturnRegex.test(path) || | 
					
						
							| 
									
										
										
										
											2020-09-07 11:04:44 +05:30
										 |  |  |       !pathsAllowedRegex.test(path) || | 
					
						
							| 
									
										
										
										
											2019-02-19 01:59:12 +03:00
										 |  |  |       /hot/i.test(req.path) | 
					
						
							| 
									
										
										
										
											2015-09-23 14:54:08 -07:00
										 |  |  |     ) { | 
					
						
							| 
									
										
										
										
											2015-08-04 01:25:34 -07:00
										 |  |  |       return next(); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-02-18 19:32:49 +00:00
										 |  |  |     req.session.returnTo = req.originalUrl.includes('/map') | 
					
						
							|  |  |  |       ? '/' | 
					
						
							|  |  |  |       : req.originalUrl; | 
					
						
							| 
									
										
										
										
											2016-03-02 20:54:14 -08:00
										 |  |  |     return next(); | 
					
						
							| 
									
										
										
										
											2015-08-04 01:25:34 -07:00
										 |  |  |   }; | 
					
						
							|  |  |  | } |