Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > Konfigurationen zum Import und Export
Mit der Datei structure.yml legen Sie im agorum core explorer Ordnerstrukturen inklusive ACLs, Benutzergruppen, Systemflags und Metadaten an.
Die Datei structure-basis.yml führen Sie mit einem JavaScript aus. Das kann etwa über die JavaScript-Konsole oder mit einem JavaScript beim Deployment geschehen.
Das JavaScript zum Aufruf der Datei structure-basis.yml und dem structure-builder.js kann folgenden Aufbau haben:
/* global sc */ global.sessionControllerAdmin = sc; let objects = require('common/objects'); let sb = require('/agorum/roi/customers/Standard/js/structure-builder'); let yamlbasis = objects.find('/agorum/roi/customers/<CONFIGURATIONPROJECT>/yml/structure-basis.yml'); sb(yamlbasis).create(); // ATTENTION: when using true, everything is reset, should only be used for testing // sb(yamlbasis, true).create();
Das Skript wird normalerweise ohne den Parameter true aufgerufen, da dieser alles neu setzt und das System alles neu durch den Index sendet.
Hinweis: Die Datei structure-builder.js wird im Standard-Template mitgeführt. Wenn Sie das Skript für ein Template speziell angepasst haben, müssen Sie das Skript im Template selbst mitführen. Der Aufruf des Skripts muss pro Konfiguration implementiert werden.
/agorum/roi/customers/
<Konfigurationsprojekt>/yml/
structure-basis.yml
# # This file defines the base structure with access rights # _prefix: agorum_dokutest_ _postfix: _postfix _aclPrefix: ACL_agorum_dokutest_ _grpPrefix: GRP_agorum_dokutest_ # # In _default everything can be set, what should be valid for each folder # _default: # acl: # unique: true # systemFlags: 65564 _leaf: # systemFlags: 28 # No area and identifier is to be set here. #+ /agorum/roi/Files --: # acl setzen, das es schon gibt acl: acl:Published + Schulung: acl: acl:Published # Metadatum setzen ~~demo_schulung: "Schulung" ~demo_schulungSparte: "Schulung" + Videos: acl: acl:Published ~~demo_schulung: "Video" ~demo_schulungSparte: "Schulung" + tmp_: acl: acl:Public flags: 39 # # # # -- user - Name der area und identifier wird überschrieben #+ /agorum/roi/Files/Demo-Beispiel: + /agorum/roi/Files/Demo-Beispiel -- user: acl: unique: true systemFlags: 65564 + Bereich 1: systemFlags: 65564 acl: leaf: true unique: true + Bereich 1.1: systemFlags: 28 + Bereich 1.2: systemFlags: 28 + Bereich 1.3: systemFlags: 28 # # "Bereich 2" werden die ACL mit der ordnerID angelegt # + Bereich 2: acl: + Bereich 2.1: acl: + Bereich 2.2: acl: + Bereich 2.3: acl: # Hier wird verlinkt + tmp_: /agorum/roi/Files/tmp_
_prefix: demo_
Setzt das Präfix allen internen Namen der Metadaten voran.
Beispiel
demo_<Metadatum>
_postfix: _Bereich
Hängt das Postfix allen internen Namen der Metadaten an.
Beispiel
<Metadatum>_Bereich
_aclPrefix: ACL_DEMO_
Verwendet das Präfix für angelegte ACLs.
Beispiel
ACL_DEMO_<ACL>
_grpPrefix: GRP_DEMO_
Verwendet das Präfix für angelegte Benutzergruppen.
Beispiel
GRP_DEMO_<Gruppe>
_default: acl: unique: true systemFlags: 65564
Definiert Definitionen, die als Standardwerte für jeden angelegten Ordner gesetzt werden.
_leaf: systemFlags: 28
Definiert Definitionen, die für jeden letzten Ordner gesetzt werden.
Der letzte Ordner ist der Ordner, der in der Strukturordnung am weitesten eingerückt ist.
Beispiel
Ordner 1 Ordner 1.1 Ordner 1.1.1 Ordner 2 Ordner 2.1 Ordner 3
In diesem Beispiel sind demnach die letzten Ordner:
Auf diese werden die Einträge unter _leaf: gesetzt.
Nach der Definition der globalen Einstellungen legen Sie die Ordnerstruktur an.
+ /agorum/roi/Files --:Das -- hinter Files bedeutet, dass das System die Metadaten area und identifier nicht setzen soll.
Beispiel
+ /agorum/roi/Files --: acl: acl:Published + Schulung: acl: acl:Published + Videos: acl: acl:Published + tmp_: acl: acl:Public flags: 39
Erstellen Sie per Datei structure-basis.yml einen Ordner, legt das System automatisch folgende Metadaten an:
Metadatum | Beschreibung |
---|---|
area | siehe Wichtige Metadaten |
identifier | |
level | Wird verwendet, wenn Sie eine Suche benötigen, die alle Objekte direkt in einem Ordner mit identifier:xyz zurückliefert (level:xyz). |
internes Metadatum | Definiert den Namen eines Ordners. Hier wird zusätzlich nochmals der für area ermittelte Wert hinterlegt. Kann verwendet werden, um bei mehreren gleichlautenden Ordnernamen den passenden spezifisch anzusprechen.
Dieses Metadatum ist im Standard deaktiviert und wird nicht gesetzt. Über die Option localIdentifiers: true können Sie diese Option wieder aktivieren: + /agorum/roi/Files --: acl: acl:Published + Schulung: acl: acl:Published localIdentifiers: true + Videos: acl: acl:Published localIdentifiers: true + tmp_: acl: acl:Public flags: 39 |
Definiert auf verschiedene Art und Weise eine ACL für die neu angelegten Ordner:
Name der Benutzergruppe
Präfix der Benutzergruppe + Name der ACL
Kein End-Ordner (_leaf nicht zutreffend)
Anlegen einer Read-Benutzergruppe: Gruppenname>_Read
Ist End-Ordner
Drei Benutzergruppen:
<Gruppenname>_Read
<Gruppenname>_Write
<Gruppenname>_All
Tipp: Werden die ACLs in zusammenhängender Reihenfolge für aufeinanderfolgende Ordner angelegt, werden alle Benutzergruppen eines neuen ACLs in die _Read-Benutzergruppe der vorherigen ACLs automatisch als Mitglieder eingefügt. Dadurch kann ein Benutzer, der etwa in einer _All-Benutzergruppe ist, automatisch durch die gesamte Struktur navigieren dank der automatischen Mitgliedschaft in der _Read-Benutzergruppe der anderen ACLs.
Möglichkeit 1: Vorhandene ACL wählen
+ /agorum/roi/Files/Demo: acl: acl:Public
Setzt die bereits vorhandene ACL Public auf den neu anzulegenden Ordner Demo.
Möglichkeit 2: Neue ACL mit ID des Ordners definieren
+ /agorum/roi/Files/Demo: acl:
Legt eine neue ACL mit der Bezeichnung ACL_DEMO_<ID des Ordners Demo>_Demo an.
+ /agorum/roi/Files --: acl: acl:Published + Firma Kurz AG: acl: + Niederlassung 1: acl: + Finanzen: acl: + Belege: acl: + Niederlassung 2: acl: + Finanzen: acl: + Belege: acl:
Hier wäre die ACL auf den Ordnern Finanzen und Belege dasselbe, wenn diese ohne die ID angelegt wurden. Mit ID besitzen alle Ordner eine andere ACL und unterscheiden sich durch die ID im Namen der ACL.
Die ACL kann nicht in anderen Skripten verwendet werden, da der Name unbekannt ist. Soll die ACL auch anderweitig zur Verfügung stehen, empfiehlt sich Möglichkeit 5, bei der die Namen selbst vergeben werden.
Möglichkeit 3: Neue ACL ohne ID des Ordners definieren
+ /agorum/roi/Files/Demo: acl: unique: true
Durch Zusatz des Keyword unique entfällt die Notwendigkeit der ID des Ordners. Dadurch lautet der Name des ACLs ACL_DEMO_Demo (_aclPrefix + Name Ordner).
Möglichkeit 4: Neue ACL mit ID des Ordners und mit festgelegten Namen definieren
+ /agorum/roi/Files/Demo: acl: Demo_demo
Legt die ACL mit dem Namen ACL_DEMO_<ID des Ordners>Demo_demo an, da das Präfix nicht weggelassen werden kann.
Möglichkeit 5: Neue ACL ohne ID des Ordners und mit festgelegten Namen definieren
+ /agorum/roi/Files/Demo: acl: Demo_demo unique: true
Legt die ACL mit dem Namen ACL_DEMO_Demo_demo an.
Dieses Vorgehen hat bei gleichen Strukturen den Vorteil, dass die ACL eindeutig ist und trotzdem einen eindeutigen Namen hat, den Sie in anderen Skripten verwenden können:
+ /agorum/roi/Files --: acl: acl:Published + Firma Lang AG: acl: "Firma Lang AG" unique: true + Niederlassung 1: acl: "Firma Lang AG_Niederlassung 1" unique: true + Finanzen: acl: "Firma Lang AG_Niederlassung 1_Finanzen" unique: true + Belege: acl: "Firma Lang AG_Niederlassung 1_Finanzen_Belege" unique: true + Niederlassung 2: acl: "Firma Lang AG_Niederlassung 2" unique: true + Finanzen: acl: "Firma Lang AG_Niederlassung 2_Finanzen" unique: true + Belege: acl: "Firma Lang AG_Niederlassung 2_Finanzen_Belege" unique: true
Der Name der ACL für .../Niederlassung 2/Finanzen/Belege lautet hier:
<ACL-Prefix>Firma Lang AG_Niederlassung 2_Finanzen_Belege
Möglichkeit 6: Keine neue ACL anlegen, stattdessen die ACL des übergeordneten Ordners erben
+ /agorum/roi/Files/Demo: acl: ^
Der Ordner Demo erbt die ACL des Ordners Files.
Steuert die Generierung von Benutzergruppen, die in Abhängigkeit der ACLs angelegt werden.
Wird eine ACL angelegt, wird im Standardfall eine read-Benutzergruppe pro Ordner erzeugt. Bei jedem untersten Ordner werden jeweils read-, write- und all-Benutzergruppen erzeugt. Geben Sie das Keyword an, können Sie steuern, welche der 3 Benutzergruppen erstellt werden. Soll mehr als nur eine Benutzergruppe erzeugt werden, verwenden Sie den Trenner |.
In folgendem Beispiel wird die read-, write- und all-Benutzergruppen angelegt:
_default: acl: unique: true generateGroups: "read|all|write"
Auf einen neuen Ordner setzt das System automatisch die Metadaten „area“ und „identifier“. Beide Metadaten werden mit dem Namen des neuen Ordners gesetzt.
Beispiel
+ /agorum/roi/Files/Demo:
Auf den Ordner Demo setzt das System demnach die Metadaten area und identifier jeweils mit dem Wert Demo.
Sollen area und identifier einen anderen Namen erhalten, erreichen Sie dies mit dem Parameter --. Dazu tragen Sie den Parameter mit gewünschtem Namen nach dem Ordnernamen und vor dem Doppelpunkt ein:
+ /agorum/roi/Files/Demo -- user:
Auf den Ordner Demo setzt das System demnach die Metadaten area und identifier jeweils mit dem Wert user.
Sollen area und identifier nicht gesetzt werden, tragen Sie hinter dem Parameter nichts ein, auch kein Leerzeichen:
+ /agorum/roi/Files/Demo --:
Sie können zusätzlich Metadaten auf einen neuen Ordner setzen.
_postfix enden. Metadaten, die mit dem Inhalt von _postfix enden, speichert das System nicht, da diese für den Automatismus mit der Option localIdentifiers: true reserviert sind (siehe Automatisch angelegte Metadaten).
Beispiel
+ /agorum/roi/Files/Demo: ~demo_kbNummer: "12345" ~~demo_kbZeichen: "z776-ab" flags: 39 systemFlags: 28
Das System setzt in diesem Beispiel folgende Metadaten:
~demo_kbNummer
nicht vererbt
~~demo_kbZeichen
vererbt
Beispielstruktur
Sie können Ordner verlinken, indem Sie hinter dem neu anzulegenden Ordner den vollständigen Ziel-Pfad setzen. Der neue Ordner sollte dazu gleich lauten wie der letzte Ordner des Pfades, auf den Sie verlinken.
Beispiel
. . + tmp_: /agorum/roi/Files/tmp_ . .
Bei diesem Beispiel wird der neue Ordner tmp_ mit dem nach dem Doppelpunkt angegebenen, gleichnamigen Pfad verlinkt.
Stellen Sie fest, dass Sie im Nachgang Ihre Hauptordnerstruktur mit Systemflags sichern wollen, müssen Sie das deploy-Skript zur structure-basis.yml anpassen:
Eigene Dateien/Administration/customers/<Konfigurationsprojekt>/deploy/pre/js/020 create-structure-basis.js
/* global sc */ global.sessionControllerAdmin = sc; let objects = require('common/objects'); let sb = require('/agorum/roi/customers/Standard/js/structure-builder'); let yamlbasis = objects.find('/agorum/roi/customers/academy.workflow/yml/structure-basis.yml'); //sb(yamlbasis).create(); // ATTENTION: when using true, everything is set newly, should only be used for testing sb(yamlbasis, true).create();
Hinweis: Alternativ setzen Sie die Systemflags gezielt mit einem JavaScript, d. h. über ein eigenes Skript in dem Ordnerabschnitt deploy/pre innerhalb Ihres Konfigurationsprojekts.