app/assets/javascripts/ember-auth/ember-auth.js in ember-auth-rails-3.1.0 vs app/assets/javascripts/ember-auth/ember-auth.js in ember-auth-rails-3.2.0

- old
+ new

@@ -1,29 +1,37 @@ // Generated by CoffeeScript 1.4.0 (function() { + var evented; - window.Auth = Em.Object.create({ + evented = Em.Object.extend(Em.Evented); + + window.Auth = evented.create({ authToken: null, currentUserId: null, - error: null, + jqxhr: null, prevRoute: null, signIn: function(data) { var _this = this; if (data == null) { data = {}; } return this.ajax(this.resolveUrl(Auth.Config.get('tokenCreateUrl')), 'POST', { data: data, - success: function(json) { + success: function(json, status, jqxhr) { _this.set('authToken', json[Auth.Config.get('tokenKey')]); - return _this.set('currentUserId', json[Auth.Config.get('idKey')]); + _this.set('currentUserId', json[Auth.Config.get('idKey')]); + _this.set('jqxhr', jqxhr); + return _this.trigger('signInSuccess'); }, - error: function(json) { - return _this.set('error', json); + error: function(jqxhr) { + _this.set('jqxhr', jqxhr); + return _this.trigger('signInError'); }, - complete: function() { - return _this.set('prevRoute', null); + complete: function(jqxhr) { + _this.set('prevRoute', null); + _this.set('jqxhr', jqxhr); + return _this.trigger('signInComplete'); } }); }, signOut: function(data) { var _this = this; @@ -31,19 +39,24 @@ data = {}; } data[Auth.Config.get('tokenKey')] = this.get('authToken'); return this.ajax(this.resolveUrl(Auth.Config.get('tokenDestroyUrl')), 'DELETE', { data: data, - success: function(json) { + success: function(json, status, jqxhr) { _this.set('authToken', null); - return _this.set('currentUserId', null); + _this.set('currentUserId', null); + _this.set('jqxhr', jqxhr); + return _this.trigger('signOutSuccess'); }, - error: function(json) { - return _this.set('error', json); + error: function(jqxhr) { + _this.set('jqxhr', jqxhr); + return _this.trigger('signOutError'); }, - complete: function() { - return _this.set('prevRoute', null); + complete: function(jqxhr) { + _this.set('prevRoute', null); + _this.set('jqxhr', jqxhr); + return _this.trigger('signOutComplete'); } }); }, resolveUrl: function(path) { var base; @@ -96,11 +109,14 @@ signOutRoute: null, authRedirect: false, smartSignInRedirect: false, smartSignOutRedirect: false, signInRedirectFallbackRoute: 'index', - signOutRedirectFallbackRoute: 'index' + signOutRedirectFallbackRoute: 'index', + rememberMe: false, + rememberTokenKey: null, + rememberPeriod: 14 }); Auth.Route = Em.Route.extend({ redirect: function() { if (Auth.Config.get('authRedirect') && !Auth.get('authToken')) { @@ -141,9 +157,57 @@ hash.data || (hash.data = {}); hash.data[Auth.Config.get('tokenKey')] = Auth.get('authToken'); } hash.context = this; return Auth.ajax(url, type, hash); + } + }); + + Auth.Module = Em.Object.create(); + + Auth.Module.RememberMe = Em.Object.create({ + init: function() { + var _this = this; + Auth.on('signInSuccess', function() { + return _this.remember(); + }); + Auth.on('signInError', function() { + return _this.forget(); + }); + return Auth.on('signOutSuccess', function() { + return _this.forget(); + }); + }, + recall: function() { + var data, token; + if (!Auth.Config.get('rememberMe')) { + return; + } + if (token = $.cookie('ember-auth-remember-me')) { + data = {}; + data[Auth.Config.get('rememberTokenKey')] = token; + return Auth.signIn(data); + } + }, + remember: function() { + var curToken, json, token; + if (!Auth.Config.get('rememberMe')) { + return; + } + json = JSON.parse((Auth.get('jqxhr')).responseText); + token = json[Auth.Config.get('rememberTokenKey')]; + curToken = $.cookie('ember-auth-remember-me'); + if (token !== curToken) { + return $.cookie('ember-auth-remember-me', token, { + expires: Auth.Config.get('rememberPeriod') + }); + } + }, + forget: function() { + if (!Auth.Config.get('rememberMe')) { + return; + } + return $.removeCookie('ember-auth-remember-me'); } }); }).call(this);