| 
									
										
										
										
											2015-08-18 15:22:28 -07:00
										 |  |  | const pathsOfNoReturn = [ | 
					
						
							|  |  |  |   'link', | 
					
						
							|  |  |  |   'auth', | 
					
						
							|  |  |  |   'login', | 
					
						
							|  |  |  |   'logout', | 
					
						
							|  |  |  |   'signin', | 
					
						
							|  |  |  |   'signup', | 
					
						
							|  |  |  |   'fonts', | 
					
						
							|  |  |  |   'favicon', | 
					
						
							|  |  |  |   'js', | 
					
						
							|  |  |  |   'css' | 
					
						
							|  |  |  | ]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-23 14:54:08 -07:00
										 |  |  | const pathsWhiteList = [ | 
					
						
							|  |  |  |   'challenges', | 
					
						
							|  |  |  |   'map', | 
					
						
							| 
									
										
										
										
											2015-12-28 12:41:37 -08:00
										 |  |  |   'commit' | 
					
						
							| 
									
										
										
										
											2015-09-23 14:54:08 -07:00
										 |  |  | ]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-18 15:22:28 -07:00
										 |  |  | const pathsOfNoReturnRegex = new RegExp(pathsOfNoReturn.join('|'), 'i'); | 
					
						
							| 
									
										
										
										
											2015-09-23 14:54:08 -07:00
										 |  |  | const whiteListRegex = new RegExp(pathsWhiteList.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) || | 
					
						
							|  |  |  |       !whiteListRegex.test(path) || | 
					
						
							| 
									
										
										
										
											2018-07-31 16:34:32 +01:00
										 |  |  |       (/hot/i).test(req.path) | 
					
						
							| 
									
										
										
										
											2015-09-23 14:54:08 -07:00
										 |  |  |     ) { | 
					
						
							| 
									
										
										
										
											2015-08-04 01:25:34 -07:00
										 |  |  |       return next(); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2018-05-15 06:12:05 +01:00
										 |  |  |     req.session.returnTo = req.originalUrl.includes('/map') ? | 
					
						
							|  |  |  |       '/' : | 
					
						
							| 
									
										
										
										
											2016-03-02 20:54:14 -08:00
										 |  |  |       req.originalUrl; | 
					
						
							|  |  |  |     return next(); | 
					
						
							| 
									
										
										
										
											2015-08-04 01:25:34 -07:00
										 |  |  |   }; | 
					
						
							|  |  |  | } |