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

Replace decprected route mixins (ember-simple-auth) #36

Merged
merged 21 commits into from
Mar 19, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
a22f89b
Replace AuthenticatedRouteMixin and call @session service instead
aatauil Feb 26, 2021
4e78670
remove mixin & call prohibitAuth redirecting the user to login if aut…
aatauil Feb 26, 2021
10b1fcc
add session & currentsession + logic (see description)
aatauil Feb 26, 2021
7b0d3da
Remove mixin and add session service (see description)
aatauil Feb 26, 2021
44359e3
create a sessions service that extends ember auths SessionService
aatauil Mar 1, 2021
f98e672
use ember auth's prohibitAuthentication instead of manually checking
aatauil Mar 1, 2021
5825d37
move in session logic to extended session service
aatauil Mar 1, 2021
8e3f944
require authentication for every 'root' routes
aatauil Mar 1, 2021
0fafa96
no need for session service in subsidyApplicationController
aatauil Mar 10, 2021
dc73ca9
add missing semi-colon
aatauil Mar 10, 2021
c6ca931
require authentication for supervision route
aatauil Mar 10, 2021
66ed40b
remove requireAuthentication from child subsidy route (parent has it)
aatauil Mar 10, 2021
1da2f96
remove unused _loadCurrentSession in session service
aatauil Mar 10, 2021
f753309
pass transition to beforeModel in supervision route
aatauil Mar 10, 2021
7b009cd
Move the current session loading logic into the session service
Windvis Mar 12, 2021
748eb0a
Merge pull request #37 from Windvis/upgrade/auth-mixin-session-servic…
cecemel Mar 17, 2021
839e8fc
remove unused session
cecemel Mar 17, 2021
d383892
redirect to index which handles further flow
cecemel Mar 17, 2021
5c5e126
consistent return statment, to please linter
cecemel Mar 17, 2021
46de1ba
linting
cecemel Mar 17, 2021
1538faa
Merge branch 'development' into upgrade/auth-mixin
HugaertsDries Mar 19, 2021
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
22 changes: 2 additions & 20 deletions app/routes/application.js
Original file line number Diff line number Diff line change
@@ -1,39 +1,22 @@
import Route from '@ember/routing/route';
import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mixin';
import { inject as service } from '@ember/service';
import ENV from 'frontend-loket/config/environment';
import { warn } from '@ember/debug';
import 'moment';
import 'moment-timezone';

export default class ApplicationRoute extends Route.extend(ApplicationRouteMixin) {
export default class ApplicationRoute extends Route {
@service() currentSession;
@service() moment;
@service() session;

beforeModel() {
const moment = this.moment;
moment.setLocale('nl-be');
moment.setTimeZone('Europe/Brussels');
moment.set('defaultFormat', 'DD MMM YYYY, HH:mm');

return this._loadCurrentSession();
}

sessionAuthenticated() {
cecemel marked this conversation as resolved.
Show resolved Hide resolved
super.sessionAuthenticated(...arguments);
this._loadCurrentSession();
}

sessionInvalidated() {
const logoutUrl = ENV['torii']['providers']['acmidm-oauth2']['logoutUrl'];
if (logoutUrl.startsWith('http')) {
window.location.replace(logoutUrl);
}
else {
warn('Incorrect logout URL configured', { id: 'session-invalidation-failure' });
}
}

_loadCurrentSession() {
return this.currentSession.load().catch((e) => {
warn(e, { id: 'session-load-failure' });
Expand All @@ -42,4 +25,3 @@ export default class ApplicationRoute extends Route.extend(ApplicationRouteMixin

}
}

8 changes: 5 additions & 3 deletions app/routes/bbcdr.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
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 class BbcdrRoute extends Route.extend(AuthenticatedRouteMixin) {
export default class BbcdrRoute extends Route {
@service session;
@service() currentSession;

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

if (!this.currentSession.canAccessBbcdr)
this.transitionTo('index');
}
Expand Down
9 changes: 5 additions & 4 deletions app/routes/berichtencentrum.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
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 class BerichtencentrumRoute extends Route.extend(AuthenticatedRouteMixin) {

export default class BerichtencentrumRoute extends Route {
@service() session;
@service() currentSession;

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

if (!this.currentSession.canAccessBerichten)
this.transitionTo('index');
}
Expand Down
10 changes: 7 additions & 3 deletions app/routes/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
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 class IndexRoute extends Route.extend(AuthenticatedRouteMixin) {

export default class IndexRoute extends Route {
@service session;

async beforeModel(transition) {
this.session.requireAuthentication(transition, 'login');
}
}
14 changes: 8 additions & 6 deletions app/routes/leidinggevendenbeheer.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
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, {
currentSession: service(),
export default class LeidinggevendenbeheerRoute extends Route {
@service session;
@service currentSession;

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

beforeModel() {
if (!this.currentSession.canAccessLeidinggevenden)
this.transitionTo('index');
},
}

model() {
return this.currentSession.group;
}

});
}
5 changes: 2 additions & 3 deletions app/routes/login.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@ import { inject as service } from '@ember/service';

export default class LoginRoute extends Route {
@service() session;

beforeModel() {
if (this.session.isAuthenticated)
this.transitionTo('index');
this.session.prohibitAuthentication('index');
}
}
8 changes: 5 additions & 3 deletions app/routes/mandatenbeheer.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import RSVP from 'rsvp';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';

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

queryParams: {
startDate: { refreshModel: true }
},

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

if (!this.currentSession.canAccessMandaat)
this.transitionTo('index');
},
Expand Down
5 changes: 2 additions & 3 deletions app/routes/mock-login.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,9 @@ export default class MockLoginRoute extends Route {
}

beforeModel() {
if (this.session.isAuthenticated)
this.transitionTo('index');
this.session.prohibitAuthentication('index');
}

model(params) {
const filter = { provider: 'https://github.com/lblod/mock-login-service' };
if (params.gemeente)
Expand Down
8 changes: 5 additions & 3 deletions app/routes/personeelsbeheer.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
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({
currentSession: service(),
session: service(),

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

beforeModel() {
if (!this.currentSession.canAccessPersoneelsbeheer)
this.transitionTo('index');
},
Expand Down
10 changes: 5 additions & 5 deletions app/routes/subsidy.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
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 class SubsidyRoute extends Route {
@service session;
@service currentSession;

export default class SubsidyRoute extends Route.extend(AuthenticatedRouteMixin) {
beforeModel(transition) {
this.session.requireAuthentication(transition, 'login');

@service currentSession

beforeModel() {
if (!this.currentSession.canAccessSubsidies)
this.transitionTo('index');
}
Expand Down
4 changes: 2 additions & 2 deletions app/routes/subsidy/applications/index.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import Route from '@ember/routing/route';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
import { inject as service } from '@ember/service';
import DataTableRouteMixin from 'ember-data-table/mixins/route';

export default class SubsidyApplicationsIndexRoute extends Route.extend(AuthenticatedRouteMixin, DataTableRouteMixin) {
export default class SubsidyApplicationsIndexRoute extends Route.extend(DataTableRouteMixin) {
modelName = 'application-form';

mergeQueryOptions() {
Expand Down
9 changes: 4 additions & 5 deletions app/routes/supervision.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
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 class SupervisionRoute extends Route.extend(AuthenticatedRouteMixin) {

export default class SupervisionRoute extends Route {
@service session;
cecemel marked this conversation as resolved.
Show resolved Hide resolved
@service currentSession

beforeModel() {
beforeModel(transition) {
this.session.requireAuthentication(transition, 'login');
if (!this.currentSession.canAccessToezicht)
this.transitionTo('index');
}
Expand Down
7 changes: 5 additions & 2 deletions app/routes/supervision/submissions/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
import Route from '@ember/routing/route';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
import DataTableRouteMixin from 'ember-data-table/mixins/route';
import { inject as service } from '@ember/service';

export default class SupervisionSubmissionsIndexRoute extends Route.extend(DataTableRouteMixin) {
@service() session;

export default class SupervisionSubmissionsIndexRoute extends Route.extend(AuthenticatedRouteMixin, DataTableRouteMixin) {
modelName = 'submission'

mergeQueryOptions() {
return {
include: [
Expand Down
9 changes: 6 additions & 3 deletions app/routes/switch-login.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
import UnauthenticatedRouteMixin from 'ember-simple-auth/mixins/unauthenticated-route-mixin';
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';

export default class SwitchLoginRoute extends Route.extend(UnauthenticatedRouteMixin) {
export default class SwitchLoginRoute extends Route {
@service() session;

beforeModel(){
this.session.prohibitAuthentication('index');
}

async model() {
try {
await this.session.authenticate('authenticator:torii', 'acmidm-oauth2');
return await this.session.authenticate('authenticator:torii', 'acmidm-oauth2');
}
catch(e) {
return 'Fout bij het aanmelden. Gelieve opnieuw te proberen.';
Expand Down
22 changes: 22 additions & 0 deletions app/services/session.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { warn } from '@ember/debug';
import { inject as service } from '@ember/service';
import SessionService from 'ember-simple-auth/services/session';
import ENV from 'frontend-loket/config/environment';

export default class LoketSessionService extends SessionService {
@service currentSession;

handleAuthentication(routeAfterAuthentication) {
super.handleAuthentication(routeAfterAuthentication);
this.currentSession.load();
}

handleInvalidation() {
const logoutUrl = ENV['torii']['providers']['acmidm-oauth2']['logoutUrl'];
if (logoutUrl.startsWith('http')) {
super.handleInvalidation(logoutUrl);
} else {
warn('Incorrect logout URL configured', { id: 'session-invalidation-failure' });
}
}
}