Skip to content

Commit

Permalink
support switching user via acm/idm (#172)
Browse files Browse the repository at this point in the history
  • Loading branch information
nvdk authored Sep 10, 2021
1 parent d051feb commit f68b94d
Show file tree
Hide file tree
Showing 6 changed files with 68 additions and 4 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ This frontend can be configured at runtime. It will get the environment variable
* `EMBER_OAUTH_BASE_URL`
* `EMBER_OAUTH_REDIRECT_URL`
* `EMBER_OAUTH_LOGOUT_URL`
* `EMBER_OAUTH_SWITCH_URL`

### other
* `EMBER_PUBLICATION_BASE_URL`: url of the linked [publication platform](https://github.com/lblod/app-gn-publicatie/), e.g. "https://publicatie.gelinkt-notuleren.vlaanderen.be/"
Expand Down
14 changes: 13 additions & 1 deletion app/controllers/inbox.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
import { action } from '@ember/object';

export default class InboxController extends Controller {
@service currentSession;
@service currentSession; //used in template
@service features;
@service session;

get acmSwitchEnabled() {
return this.features.isEnabled('acmidm-switch');
}

@action
logout() {
this.session.invalidate();
}
}
20 changes: 20 additions & 0 deletions app/routes/switch-login.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';

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

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

async model() {
try {
return await this.session.authenticate('authenticator:torii', 'acmidm-oauth2');
}
catch(e) {
return 'Fout bij het aanmelden. Gelieve opnieuw te proberen.';
}
}
}

11 changes: 9 additions & 2 deletions app/templates/inbox.hbs
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
<AuMainHeader @homeRoute="index" @appTitle="Gelinkt Notuleren" @contactRoute="contact">
<AuDropdown @dropdownTitle="{{this.currentSession.user.voornaam}} {{this.currentSession.user.achternaam}} - {{this.currentSession.group.classificatie.label}} {{this.currentSession.group.naam}}" @dropdownButtonLabel="Account settings" @alignment="right">
<AcmidmLogout class="au-c-button au-c-button--link" role="menuitem">
{{#if this.acmSwitchEnabled}}
<Acmidm::Switch as |acmidm|>
<AuButton @loading={{acmidm.isSwitching}} class="au-c-button au-c-button--tertiary" role="menuitem" {{on "click" acmidm.switch}}>
<AuIcon @icon="switch" @alignment="left" />Wissel van bestuurseenheid
</AuButton>
</Acmidm::Switch>
{{/if}}
<button type="button" class="au-c-button au-c-button--tertiary" role="menuitem" {{on "click" this.logout}}>
<AuIcon @icon="logout" @alignment="left" />Afmelden
</AcmidmLogout>
</button>
</AuDropdown>
</AuMainHeader>

Expand Down
22 changes: 22 additions & 0 deletions app/templates/switch-login.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<VoPage>
<section class="au-o-region-large">
<div class="au-o-layout">
<div class="au-o-grid au-o-grid--small">
<div class="au-o-grid__item au-u-3-4@small au-u-1-2@medium">
<AuContent @skin="large">
<h1>Gelinkt Notuleren</h1>
<p class="au-c-heading au-c-heading--4">Een webapplicatie die helpt met het opmaken en publiceren van agenda's, notulen en besluiten voor Lokale Besturen.</p>
<p>Lukt het aanmelden niet? Neem contact op met uw interne beheerder. Indien er zich een probleem voordoet, contacteer <a class="au-c-link" href="https://overheid.vlaanderen.be/ict/ict-diensten/gebruikersbeheer">gebruikersbeheer Vlaanderen</a>.</p>
<p>Het aanmelden gebeurt in een pop-up; zorg dat de instellingen van uw browser correct staan indien deze niet verschijnt.</p>
</AuContent>
</div>
<div class="au-o-grid__item au-u-1-4@small au-u-1-2@medium au-u-text-right@medium">
<AcmidmLogin />
{{#if this.model}}
<AuAlert @alertIcon="alert-triangle" @alertTitle={{this.model}} @alertskin="error" class="au-u-text-left" />
{{/if}}
</div>
</div>
</div>
</section>
</VoPage>
4 changes: 3 additions & 1 deletion config/environment.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ module.exports = function (environment) {
'language-select': false,
'editor-html-paste': true,
'editor-extended-html-paste': true,
'acmidm-switch': false
'attachments': false
},
browserUpdate: {
Expand All @@ -62,7 +63,8 @@ module.exports = function (environment) {
baseUrl: "{{OAUTH_BASE_URL}}",
scope: 'openid rrn vo profile abb_gelinktNotuleren',
redirectUri: "{{OAUTH_REDIRECT_URL}}",
logoutUrl: "{{OAUTH_LOGOUT_URL}}"
logoutUrl: "{{OAUTH_LOGOUT_URL}}",
returnUrl: "{{OAUTH_SWITCH_URL}}"
}
}
},
Expand Down

0 comments on commit f68b94d

Please sign in to comment.