checkAccess
[ Funktion ]
public static checkAccess(
control: TcHmi.Controls.System.baseTcHmiControl,
requestedAccessright: string
): boolean | null;
Prüft ein Zugriffsrecht eines Controls. Alle Controls bieten die Rechte operate und observe. Controls können weitere Rechtenamen festlegen und entsprechend reagieren. Rechte werden immer Gruppen zugewiesen.
Ist auf einem Control selbst dieses Recht nicht explizit festgelegt, so wird sein Eltern-Control geprüft. Daher ist eine Prüfung erst nach dem Einhängen (attach) möglich.
Mögliche Situationen:
- Im Engineering innerhalb des Visual Studios ist ein Recht immer gewährt.
- Hat ein Server keine Passwortabfrage, so wird ein Recht immer gewährt.
- Ist ein Control nicht eingehangen, so ist keine Entscheidung möglich.
- Hat eine Gruppe des aktuellen Benutzers das Recht erlaubt, so wird das Recht gewährt.
- Hat keine Gruppe des aktuellen Benutzers das Recht erlaubt und eine Gruppe das Recht verweigert, so wird das Recht verweigert.
- Hat keine Gruppe des aktuellen Benutzers das Recht erlaubt oder verweigert, so wird das Eltern-Control geprüft.
- Hat kein Eltern-Control dieses Recht explizit gesetzt, so gilt das Standardrecht (operate und observe haben „erlauben“ als Standard).
- Weitere Grenzfälle sind erklärt unter: Controlzugriff konfigurieren
Parameter
Name | Typ | Beschreibung |
---|---|---|
control | Control das geprüft werden soll | |
requestedAccessright | Name des zu prüfenden Zugriffsrechts |
Rückgabewert
Typ | Beschreibung |
---|---|
true: Das Control hat aktuell dieses Recht. false: Das Control hat aktuell dieses Recht nicht. null: Das Zugriffsrecht ist aktuell nicht entscheidbar. Siehe oben. |
Verfügbar ab Version 1.8 |
Beispiel - JavaScript
In einem eigenen Eventhandler soll ein Recht geprüft werden. Dies ist in der Description.json hinzuzufügen, sonst kann das Recht nicht im Visual Studio konfiguriert werden.
var myDiv = $('<div>Hello World!</div>');
myDiv.on('click', function(evt) {
if(TcHmi.Access.checkAccess(myControl, 'doFancyStuff') !== true){
return; // current user has no right to do this
}
// fancy stuff
});
myControl.getElement().append(myDiv);