diff --git a/assets/dbp-signature.html.ejs b/assets/dbp-signature.html.ejs index b73a0ff4461ce11cb2ba965e781d2345fd377f63..bf8a725071fe6c65e78bc8c1f43748c19a75be8a 100644 --- a/assets/dbp-signature.html.ejs +++ b/assets/dbp-signature.html.ejs @@ -63,7 +63,7 @@ nextcloud-file-url="<%= nextcloudFileURL %>"> <<%= name %> subscribe="lang:lang,entry-point-url:entry-point-url" - auth + auth requested-login-status src="<%= getUrl(name + '.topic.metadata.json') %>" base-path="<%= getUrl('') %>" keycloak-config='{"url": "<%= keyCloakBaseURL %>", "realm": "tugraz", "clientId": "<%= keyCloakClientId %>", "silentCheckSsoRedirectUri": "<%= getUrl('silent-check-sso.html') %>"}' diff --git a/src/dbp-signature-lit-element.js b/src/dbp-signature-lit-element.js index 306a152b9359e2791573dedb726dd4663de3deda..049f524cc5a895b2690920c960743425247a8b71 100644 --- a/src/dbp-signature-lit-element.js +++ b/src/dbp-signature-lit-element.js @@ -1,6 +1,6 @@ -import {EventBus} from '@dbp-toolkit/common'; import * as utils from "./utils"; import {AdapterLitElement} from "@dbp-toolkit/provider/src/adapter-lit-element"; +import JSONLD from "@dbp-toolkit/common/jsonld"; export class DBPSignatureBaseLitElement extends AdapterLitElement { constructor() { @@ -23,8 +23,8 @@ export class DBPSignatureBaseLitElement extends AdapterLitElement { return (this.auth.person && Array.isArray(this.auth.person.roles) && this.auth.person.roles.indexOf(roleName) !== -1); } - _updateAuth(e) { - this._loginStatus = e.status; + _updateAuth() { + this._loginStatus = this.auth['login-status']; // Every time isLoggedIn()/isLoading() return something different we request a re-render let newLoginState = [this.isLoggedIn(), this.isLoading()]; if (this._loginState.toString() !== newLoginState.toString()) { @@ -33,20 +33,24 @@ export class DBPSignatureBaseLitElement extends AdapterLitElement { this._loginState = newLoginState; } + update(changedProperties) { + changedProperties.forEach((oldValue, propName) => { + switch (propName) { + case "auth": + JSONLD.doInitializationOnce(this.entryPointUrl, this.auth.token); + this._updateAuth(); + break; + } + }); + + super.update(changedProperties); + } + connectedCallback() { super.connectedCallback(); this._loginStatus = ''; this._loginState = []; - this._bus = new EventBus(); - this._updateAuth = this._updateAuth.bind(this); - this._bus.subscribe('auth-update', this._updateAuth); - } - - disconnectedCallback() { - this._bus.close(); - - super.disconnectedCallback(); } isLoggedIn() { diff --git a/vendor/toolkit b/vendor/toolkit index 92da0f592b3828477fde02a784436be89d67d660..e86f826479612647cf9b945c987d87f5a165beb6 160000 --- a/vendor/toolkit +++ b/vendor/toolkit @@ -1 +1 @@ -Subproject commit 92da0f592b3828477fde02a784436be89d67d660 +Subproject commit e86f826479612647cf9b945c987d87f5a165beb6