Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove deprecated mixins in favor of session service #2480

Merged
merged 5 commits into from
Nov 4, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions packages/classic-test-app/app/adapters/application.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/* eslint-disable ember/no-mixins */
import JSONAPIAdapter from '@ember-data/adapter/json-api';
import DataAdapterMixin from 'ember-simple-auth/mixins/data-adapter-mixin';
import config from '../config/environment';
import { computed } from '@ember/object';
import { inject as service } from '@ember/service';

export default JSONAPIAdapter.extend(DataAdapterMixin, {
export default JSONAPIAdapter.extend({
host: config.apiHost,
session: service(),

headers: computed('session.{data.authenticated.access_token,isAuthenticated}', function() {
let headers = {};
Expand All @@ -15,4 +15,11 @@ export default JSONAPIAdapter.extend(DataAdapterMixin, {

return headers;
}),

handleResponse(status) {
if (status === 401 && this.get('session.isAuthenticated')) {
this.get('session').invalidate();
}
return this._super(...arguments);
},
});
17 changes: 3 additions & 14 deletions packages/classic-test-app/app/routes/application.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,10 @@
/* eslint-disable ember/no-mixins */
import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mixin';

export default Route.extend(ApplicationRouteMixin, {
sessionAccount: service('session-account'),
export default Route.extend({
session: service(),

beforeModel() {
return this._loadCurrentUser();
return this.session.setup();
},

sessionAuthenticated() {
this._super(...arguments);
this._loadCurrentUser();
},

_loadCurrentUser() {
return this.get('sessionAccount').loadCurrentUser().catch(() => this.get('session').invalidate());
}
});
9 changes: 6 additions & 3 deletions packages/classic-test-app/app/routes/auth-error.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
/* eslint-disable ember/no-mixins */
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';

export default Route.extend(AuthenticatedRouteMixin, {
export default Route.extend({
store: service(),
session: service(),

beforeModel(transition) {
this.get('session').requireAuthentication(transition, 'login');
},

model() {
return this.get('store').find('post', 3);
Expand Down
18 changes: 14 additions & 4 deletions packages/classic-test-app/app/routes/callback.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,17 @@
/* eslint-disable ember/no-mixins */
import Route from '@ember/routing/route';
import OAuth2ImplicitGrantCallbackRouteMixin from 'ember-simple-auth/mixins/oauth2-implicit-grant-callback-route-mixin';
import { inject as service } from '@ember/service';
import { parseResponse } from 'ember-simple-auth/authenticators/oauth2-implicit-grant';

export default Route.extend(OAuth2ImplicitGrantCallbackRouteMixin, {
authenticator: 'authenticator:oauth2-implicit-grant'
export default Route.extend({
session: service(),

activate() {
if (!this.fastboot.isFastBoot) {
let hash = parseResponse(window.location.hash);

this.get('session').authenticate('authenticator:oauth2-implicit-grant', hash).catch((error) => {
this.set('error', error);
});
}
},
});
11 changes: 8 additions & 3 deletions packages/classic-test-app/app/routes/login.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
/* eslint-disable ember/no-mixins */
import Route from '@ember/routing/route';
import UnauthenticatedRouteMixin from 'ember-simple-auth/mixins/unauthenticated-route-mixin';
import { inject as service } from '@ember/service'

export default Route.extend(UnauthenticatedRouteMixin);
export default Route.extend({
session: service(),

beforeModel(transition) {
this.get('session').prohibitAuthentication('index');
}
});
9 changes: 6 additions & 3 deletions packages/classic-test-app/app/routes/protected.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
/* eslint-disable ember/no-mixins */
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';

export default Route.extend(AuthenticatedRouteMixin, {
export default Route.extend({
store: service(),
session: service(),

beforeModel(transition) {
this.get('session').requireAuthentication(transition, 'login');
},

model() {
return this.get('store').findAll('post');
Expand Down
12 changes: 12 additions & 0 deletions packages/classic-test-app/app/services/session.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { inject as service } from '@ember/service';
import SessionService from 'ember-simple-auth/services/session';

export default SessionService.extend({
sessionAccount: service(),

handleAuthentication() {
this._super(...arguments);

this.get('sessionAccount').loadCurrentUser().catch(() => this.invalidate());
}
});
6 changes: 5 additions & 1 deletion packages/classic-test-app/ember-cli-build.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@ const EmberApp = require('ember-cli/lib/broccoli/ember-app');

module.exports = function(defaults) {
let app = new EmberApp(defaults, {
// Add options here
// Fixes automatic setup deprecation
// ember-simple-auth.initializer.setup-session-restoration
'ember-simple-auth': {
useSessionSetupMethod: true,
}
});

// Use `app.import` to add additional libraries to the generated
Expand Down
11 changes: 6 additions & 5 deletions packages/classic-test-app/lib/my-engine/addon/routes/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
/* eslint-disable ember/no-mixins */
import Route from '@ember/routing/route';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
import { inject as service } from '@ember/service'

export default Route.extend(AuthenticatedRouteMixin, {
triggerAuthentication() {
this.transitionToExternal('login');
export default Route.extend({
session: service(),

beforeModel(transition) {
this.get('session').requireAuthentication(transition, 'login');
}
});
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export function parseResponse(locationHash) {
([RFC 6749](http://tools.ietf.org/html/rfc6749)), specifically the _"Implicit
Grant Type"_.

Use {{#crossLink "OAuth2ImplicitGrantCallbackMixin"}}{{/crossLink}} in your
Use {{#crossLink "SessionService/authenticate:method"}}{{/crossLink}} in your
OAuth 2.0 redirect route to parse authentication parameters from location
hash string into an object.

Expand Down
138 changes: 0 additions & 138 deletions packages/ember-simple-auth/addon/mixins/application-route-mixin.js

This file was deleted.

Loading