Open Source Dokumentenmanagement
Dokumentation

Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum core JavaScript-API


SessionController(sc, sca)

Der SessionController ist eine Variable (sc), die in jedem Skript zur Verfügung steht. Zusätzlich können Sie eine administrative Sitzung verwenden, indem Sie sca statt sc setzen.

  • sc: Sitzungsverwaltung eines Standardbenutzers
  • sca: "super admin session (roi)", Sitzung mit Superadministrator-Rechten.

Mithilfe dieser Java-Klasse fragen Sie diverse Kontexte zur Session des aktuell angemeldeten Benutzers ab. Zusätzlich können Sie die Rechte für die Session temporär erhöhen.

Syntax und Verwendung


Die Session des angemeldeten Benutzers ist als globale Variable verfügbar und trägt den Namen sc.

Definieren Sie diese Variable über die Angabe global, um sie zu verwenden:
/* global sc */

let value = sc.field;
Zusätzlich können Sie eine administrative Sitzung verwenden, indem Sie sca statt sc setzen.
  • sca können Sie für Aktionen verwenden, für die der angemeldete Benutzer nicht berechtigt ist.
  • Wenn Sie sca setzen, verwendet das System den Super-Administrator roi.
/* global sc, sca */
// sc = user session
// sca = super admin session (roi)

// Everything that is done with objects will be done with ROI. Use this approach only if this is really necessary!
let objects = require('common/objects').sc(sca);

Bibliotheken, die mit Objekten arbeiten (wie die JavaScript-Bibliothek common/objects), verwenden im Standard die global verfügbare Sitzung sc für ihre Operationen. Eine davon abweichende Sitzung verwenden Sie etwa folgendermaßen:

/* global sca */

let objects = require('common/objects').sc(sca);

let object = objects.find('/not/visible/to/current/user');

Dieses Beispiel verwendet abweichend die administrative Sitzung sca, um das Objekt /not/visible/to/current/user zu finden, das der aktuell angemeldete Benutzer nicht sehen kann.

sca können Sie in diesen Bibliotheken verwenden:

Oft ist es besser, die Rechte nur temporär zu erhöhen. Dazu können Sie eine der Methoden asAdmin oder asService verwenden.

/* global sc */ 

// Everything that is done with objects will be done with the user, but with admin privileges. 
// User with elevated privileges
let objects = require('common/objects').sc(sc.asAdmin());

// Everything that is done with objects will be done with the user, but as a service session. 
// Some functionality is not available, e.g. no change history will be created
let objects = require('common/objects').sc(sc.asService());

Zusätzlich gibt es die Möglichkeit, mit der Methode asUser eine Session gezielt als ein anderer Benutzer auszuführen:

/* global sc */ 

// Everything that is done with objectUser will be done with a session of the demo user.
let objects = require('common/objects');
let objectUser = require('common/objects').sc(sc.asUser(objects.find('user:demo')));

Sie können auch eine Session, die als ein anderer Benutzer ausgeführt wird, temporär mit Admin-Rechten versehen oder als Service ausführen:

/* global sc */ 

// Everything that is done with objectUserAdmin will be done with a session of the demo user with admin privileges.
let objectUserAdmin = require('common/objects').sc(sc.asUser(objects.find('user:demo')).asAdmin();

Methoden und Eigenschaften


loginUser

Fragt den aktuell angemeldeten Benutzer der Session ab.


Syntax

Name des Benutzers

let loginUser = sc.loginUser.name;


ID des Benutzers

let loginUser = sc.loginUser.ID;


Parameter

Zu dieser Methode existieren keine Parameter.


Beispiele

Name des Benutzers

/* global sc */
let loginUser = sc.loginUser.name;
loginUser;


ID des Benutzers

/* global sc */
let loginUser = sc.loginUser.ID;
loginUser;


Rückgabewerte

Sie erhalten entweder den Namen oder die ID des aktuell angemeldeten Benutzers der Session zurück.


Name des Benutzers

roi


ID des Benutzers

11000


Verwendung

Diese Methode verwenden Sie, wenn Sie den Namen oder die ID des aktuell angemeldeten Benutzers der Session erhalten möchten.


Exceptions

Zu dieser Methode existieren keine Exceptions.

loginUserUuid

Frag die UUID des aktuell angemeldeten Benutzers der Session ab.


Syntax

let loginUserUuid = sc.loginUserUuid;


Parameter

Zu dieser Methode existieren keine Parameter.


Beispiel

/* global sc */
let loginUserUuid = sc.loginUserUuid;
loginUserUuid;


Rückgabewerte

Sie erhalten die UUID des aktuell angemeldeten Benutzers der Session zurück.

714614d0-ce62-11e0-b47a-0800276e2399


Verwendung

Diese Methode verwenden Sie, wenn Sie die UUID des aktuell angemeldeten Benutzers der Session erhalten möchten.


Exceptions

Zu dieser Methode existieren keine Exceptions.

locale

Fragt die Spracheinstellung der Session ab.


Syntax

let locale = sc.locale;


Parameter

Zu dieser Methode existieren keine Parameter.


Beispiel

/* global sc */
let locale = sc.locale;
locale;


Rückgabewerte

Sie erhalten die Spracheinstellung der Session zurück. Es handelt sich dabei um ein java.util.Locale-Objekt.

"de"


Verwendung

Diese Methode verwenden Sie, wenn Sie die Spracheinstellung der Session erhalten möchten.


Exceptions

Zu dieser Methode existieren keine Exceptions.

adminEnabled

Fragt ab, ob sich die Session im Adminmodus oder im normalen Benutzermodus befindet.


Syntax

let adminEnabled = sc.adminEnabled;


Parameter

Zu dieser Methode existieren keine Parameter.


Beispiel

/* global sc */
let adminEnabled = sc.adminEnabled;
adminEnabled;


Rückgabewerte

Sie erhalten einen booleschen Wert zurück.

Wert Beschreibung
true Die Session befindet sich im Adminmodus.
false Session befindet sich im normalen Benutzermodus.


Verwendung

Diese Methode verwenden Sie, um herauszufinden, ob sich die Session im Adminmodus oder im normalen Benutzermodus befindet.


Exceptions

Zu dieser Methode existieren keine Exceptions.

 

mainAdmin

Fragt ab, ob sich die Session im Hauptadministratormodus befindet.


Syntax

let mainAdmin = sc.mainAdmin;


Parameter

Zu dieser Eigenschaft existieren keine Parameter.


Beispiel

/* global sc */
let mainAdmin = sc.mainAdmin;
mainAdmin;


Rückgabewerte

Sie erhalten einen booleschen Wert zurück.

Wert Beschreibung
true Die Session befindet sich im Hauptadministratormodus.
false Session befindet sich nicht im Hauptadministratormodus.


Verwendung

Diese Eigenschaft verwenden Sie, um herauszufinden, ob sich die Session im Hauptadministratormodus befindet.


Exceptions

Zu dieser Eigenschaft existieren keine Exceptions.

asAdmin()

Nimmt die aktuelle Sitzung und erzeugt einen temporären SessionController, bei dem der Adminmodus aktiviert ist.


Syntax

let asAdmin = sc.asAdmin();


Parameter

Zu dieser Methode existieren keine Parameter.


Beispiel

/* global sc */
let asAdmin = sc.asAdmin();

// load objects library with this new admin session
let objectsAdmin = require('common/objects').sc(asAdmin);

// Work with the objects library as admin e.g. to create the folder "Testordner" under "Eigene Dateien" of the user
objectsAdmin = objectsAdmin.find('home:myFiles/Testordner:create');


Rückgabewerte

Diese Methode liefert keine Werte zurück.


Verwendung

Diese Methode verwenden Sie, wenn Sie etwas mit dem aktuell angemeldeten Benutzer durchführen wollen, dessen Rechte aber nicht ausreichen.


Exceptions

Zu dieser Methode existieren keine Exceptions.

asService()

Nimmt die aktuelle Sitzung und erzeugt einen temporären SessionController, bei dem der Servicemodus aktiviert ist.

Beim Servicemodus:

  • verändert das System das lastModifyDate und den lastModifier nicht, wenn ein Objekt aktualisiert wird
  • legt das System keine Historie an, wenn ein Objekt geändert wird


Syntax

let asService = sc.asService();


Parameter

Zu dieser Methode existieren keine Parameter.


Beispiel

/* global sc */
let asService = sc.asService();

// load objects library with this new session
let objectsService = require('common/objects').sc(asService);

// Mit der objects-Bibliothek im Servicemodus weiterarbeiten, um etwa einen Benutzer zu aktualisieren, ohne das lastModifyDate zu ändern.
objectsService = objectsService.update('user', objects.find('user:USERNAME'), {
  name: 'testuser',
  password: 'testpass',
  admin: false,
  givenName: 'Test',
  familyName: 'User',
  language: 'de',
  emailAddresses: [ 'testuser@agorum.com' ]
});


Rückgabewerte

Sie erhalten den erzeugten SessionController zurück.

4615452


Verwendung

Diese Funktion verwenden Sie, wenn Sie mit Objekten arbeiten und wünschen, dass das System:

  • beim Update eines Objekts das lastModifyDate und den lastModifier nicht verändert
  • beim Ändern eines Dokuments keine Historie anlegt


Exceptions

Zu dieser Methode existieren keine Exceptions.

asUser(user)

Nimmt die aktuelle Sitzung und erzeugt einen temporären SessionController, bei dem das System den aktuellen Benutzer auf den angegebenen Benutzer ändert.


Syntax

let asUser = sc.asUser(user);


Parameter

Parameter Beschreibung Pflicht Standard-Wert Weitere Informationen
user Definiert den Benutzer, mit dem Sie in der aktuellen Sitzung weiterarbeiten möchten.

Wenn Sie den Benutzer anhand des Namens suchen wollen, verwenden Sie objects.find.
ja Beispiel


Beispiel

/* global sc */
let objects = require('common/objects');
let asUser = sc.asUser(objects.find('user:demo'));

// load objects library with this new session
let objectsUser = require('common/objects').sc(asUser);

// Work with the objects library as "demo" user e.g. to create the folder "Testordner" under "Eigene Dateien" of the user
objectsUser = objectsUser.find('home:myFiles/Testordner:create');

Für Beispiele zum Suchen von Objekten siehe JavaScript-Bibliothek common/objects.


Rückgabewerte

Sie erhalten den erzeugten SessionController zurück.

4615452


Verwendung

Diese Methode verwenden Sie, wenn Sie etwa im Namen eines anderen Benutzers mit agorum core arbeiten möchten.


Exceptions

Zu dieser Methode existieren keine Exceptions.

getDirectoryUserFromEmailAddress

Fragt das Benutzerobjekt zu einer E-Mail-Adresse ab.


Syntax

let user = sc.getDirectoryUserFromEmailAddress('string');


Parameter

Parameter Beschreibung Pflicht Standard-Wert Weitere Informationen
string Definiert die E-Mail-Adresse. ja Beispiel


Beispiel

/* global sc */
let user = sc.getDirectoryUserFromEmailAddress('demo@agorumcore.com');
user;


Rückgabewerte

Sie erhalten das Benutzerobjekt zurück, zu dem die angegebene E-Mail-Adresse zugeordnet ist.

1025764


Verwendung

Diese Methode verwenden Sie, wenn Sie zu einer E-Mail-Adresse den zugeordneten Benutzer erfahren möchten.


Exceptions

Zu dieser Methode existieren keine Exceptions.

getEntityAcl

Erzeugt für die gegebene Kombination aus Benutzer-/Benutzergruppenobjekt, Berechtigung und Suffix eine entsprechende ACL oder gibt die zugehörige ACL zurück, wenn sie bereits existiert.


Syntax

let acl = sc.getEntityAcl(userOrGroup, permissions, prefix);


Parameter

Parameter Beschreibung Pflicht Standard-Wert
userOrGroup Definiert den Benutzer oder die Benutzergruppe, für die das System die ACL zurückgibt. ja
permissions Definiert eine Zeichenkette mit der Angabe, welche Berechtigungen das System setzt.

Mögliche Werte
  • ALL
  • READ
  • CHECK_OUT
  • WRITE
  • PROTECTED
ja
prefix Definiert eine Bezeichnung, die das System zur Kennzeichnung der ACL verwendet.

Häufig ist das der Name des Kontexts (Paket, Modul), in dem Sie diese einsetzen möchten.

ja


Beispiel

Dieses Beispiel zeigt die Anwendung der Methode, um eine ACL für den Benutzer demo im Kontext von my_package_ zurückzuliefern, die ihm Leserechte gewährt.

/* global sc */

let objects = require('common/objects');

let user = objects.find('user:demo');
let acl = sc.getEntityAcl(user, 'READ', 'my_package_');

acl;


Rückgabewerte

Sie erhalten das ACL-Objekt zurück, das auf die übergebene Beschreibung passt.


Verwendung

Diese Methode verwenden Sie, wenn Sie für einen gegebenen Benutzer/eine gegebene Benutzergruppe eine ACL benötigen, die ihm ein bestimmtes Recht gibt.