Dieses Package dient dazu Scopes, welche innerhalb von AMS-Pro genutzt werden, nutzbar zu machen, sodass innerhalb von Front- und Backend die Möglichkeit besteht zu überprüfen, ob ein User Zugriff (auf Basis der ihm zugewiesenen Scopes) auf eine bestimmte Ressource besitzt.
yarn add @ams-pro/scope-utils
oder
npm i @ams-pro/scope-utils
Hauptanwendungsfall im Frontend wird sein, herauszufinden, wie bestimmte Elemente gerendert werden sollen, auf Basis der dem User zur Verfügung stehenden Scopes. Dazu kann, nachdem der User sich eingeloggt hat, eine Instanz des AccessController
's erstellt werden. Dieser nimmt als Parameter die aktuellen User-Scopes entgegen:
let accessController: AccessController;
export function useScopes() {
const init = (scopes: string | string[]) => {
if (!accessController) {
accessController = new AccessController(scopes);
}
};
return {
can: accessController.can,
update: accessController.updateUserScopes,
init,
};
}
Nach dem einloggen muss nun einmal die Funktion useScopes().init()
aufgerufen werden, damit eine AccessController
-Instanz zur Verfügung steht.
Innerhalb einer Komponente kann nun mithilfe von
<template>
<div>
<button :disabled="!can('ams:betriebsmittel:write')">Speichern</button>
</div>
</template>
<script>
export default {
setup() {
const { can } = useScopes();
return { can };
},
};
</script>
Abgefragt werden, ob der User Zugriff hat oder nicht. Sollten sich die Scopes eines Users im Verlaufe einer Sitzung ändern (durch einloggen in eine andere Unit, o.ä.) können mithilfe von AccessController.updateUserScopes
alle Scopes überschrieben werden.
Coming Soon