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);