| 
									
										
										
										
											2017-08-14 19:35:53 +00:00
										 |  |  | app.factory('Auth', [ | 
					
						
							|  |  |  |   '$rootScope', 'localStorageService', '$location', 'azp@oauth3.org' | 
					
						
							|  |  |  | , function($rootScope, localStorageService, $location, Oauth3) { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-14 23:00:01 +00:00
										 |  |  |   var dapSession = 'dap-session'; | 
					
						
							|  |  |  |   var dapSessions = 'dap-sessions'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   var Auth = { | 
					
						
							|  |  |  |     setUser: function (currentUser) { | 
					
						
							|  |  |  |       localStorageService.set('userAuth', JSON.stringify(currentUser)); | 
					
						
							| 
									
										
										
										
											2017-08-09 12:41:43 -06:00
										 |  |  |     }, | 
					
						
							| 
									
										
										
										
											2017-08-14 23:00:01 +00:00
										 |  |  |     isLoggedIn: function () { | 
					
						
							|  |  |  |       Auth.restore(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       return Auth.session || false; | 
					
						
							| 
									
										
										
										
											2017-08-11 09:09:41 -06:00
										 |  |  |     }, | 
					
						
							| 
									
										
										
										
											2017-08-14 23:00:01 +00:00
										 |  |  |     getProfile: function (profile) { | 
					
						
							|  |  |  |       Auth.restore(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       return Auth.session || false; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   , add: function (session) { | 
					
						
							|  |  |  |       var obj = JSON.parse(localStorage.getItem(dapSessions) || 'null') || {}; | 
					
						
							|  |  |  |       var dapName = 'dap-' + session.subject + '|' + session.issuer; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       console.log('session', session); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       Auth.session = session; | 
					
						
							|  |  |  |       Auth.sessions.push(session); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       localStorage.setItem(dapName, JSON.stringify(session)); | 
					
						
							|  |  |  |       localStorage.setItem(dapSession, dapName); | 
					
						
							|  |  |  |       obj[dapName] = true; | 
					
						
							|  |  |  |       localStorage.setItem(dapSessions, JSON.stringify(obj)); | 
					
						
							| 
									
										
										
										
											2017-08-09 12:41:43 -06:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2017-08-14 23:00:01 +00:00
										 |  |  |   , restore: function () { | 
					
						
							|  |  |  |       var dapName = localStorage.getItem(dapSession); | 
					
						
							|  |  |  |       Auth.sessions.length = 0; // don't overwrite with a new array, keep original references
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       (Object.keys(JSON.parse(localStorage.getItem(dapSessions) || 'null') || {})).forEach(function (name) { | 
					
						
							|  |  |  |         var session = JSON.parse(localStorage.getItem(name) || 'null'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (session) { | 
					
						
							|  |  |  |           session.email = session.subject; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (dapName === name) { | 
					
						
							|  |  |  |           Auth.session = session; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         Auth.sessions.push(session); | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       return Auth.session; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2017-08-15 09:37:37 -06:00
										 |  |  |   , signOut: function () { | 
					
						
							|  |  |  |     localStorage.clear(); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2017-08-14 23:00:01 +00:00
										 |  |  |   , sessions: [] | 
					
						
							|  |  |  |   , session: null | 
					
						
							| 
									
										
										
										
											2017-08-09 12:41:43 -06:00
										 |  |  |   }; | 
					
						
							| 
									
										
										
										
											2017-08-14 23:00:01 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   return Auth; | 
					
						
							| 
									
										
										
										
											2017-08-08 22:23:19 -06:00
										 |  |  | }]); |