Berechtigungs Check
Ein kleines Script das euch zeigt wie man Berchtigungs Checks ausführen kann.
Es enthält 3 Funktionen die durch Berührung des Prims ausgelöst werden:
- Ownercheck prüft auf Besitzer des Prims, und erlaubt nur diesem den Zugang
- Groupcheck prüft auf Gruppe des Prims und vergleicht diese mit der aktive Gruppe desjenigen der es berührt. Bei Gleichheit wird Zugang gewährt.
- Berechtigungcheck ist wie 2. jedoch mit Abfrage ob die Gruppe steuern darf.
Viel Spaß
Tron
Ein kleines Script das euch zeigt wie man Berchtigungs Checks ausführen kann.
Es enthält 3 Funktionen die durch Berührung des Prims ausgelöst werden:
- Ownercheck prüft auf Besitzer des Prims, und erlaubt nur diesem den Zugang
- Groupcheck prüft auf Gruppe des Prims und vergleicht diese mit der aktive Gruppe desjenigen der es berührt. Bei Gleichheit wird Zugang gewährt.
- Berechtigungcheck ist wie 2. jedoch mit Abfrage ob die Gruppe steuern darf.
Code:
// P914 Berechtigungcheck Makros zum Einbau in eure Scripte - beispielsweise in Türen
//
// 3 Funktionen die durch Berührung des Prims ausgelöst werden:
//
// Ownercheck prüft auf Besitzer, und erlaubt nur diesem den Zugang
//
// Groupcheck prüft auf aktive Gruppe und erlaubt dieser bei Gleichheit mit Primgruppe den Zugang
//
// P914 Berechtigungscheck erlaubt Besitzer und gleicher aktiver Gruppe den Zugang
//
// 12.2019 by Tron Mcp
// darf frei verwendet werden.
integer Gruppenerlaubnis = TRUE; // Festlegen ob Inhaber der gleichen Gruppe das Prim bedienen dürfen [TRUE / FALSE]
integer ownercheck(key pruefling) // Testen ob Objekt dem Pruefling gehört
{
key owner = llGetOwner(); // Key des Eigentümer dieses Objektes ermitteln
if (pruefling == owner) return TRUE;
else return FALSE;
}
integer groupcheck(key pruefling) // Testen ob Objekt und aktive Gruppe des Pruflings gleich sind
{
if (llSameGroup(pruefling)) return TRUE;
else return FALSE;
}
integer berechtigungscheck(key pruefling) // Testen ob Zugang gewährt werden soll
{
if ( ownercheck(pruefling) || (groupcheck(pruefling) && Gruppenerlaubnis) ) return (TRUE);
else return (FALSE);
}
default
{
state_entry(){}
touch_start(integer num)
{
key userID=llDetectedKey(0); // UUID Key des berührenden ermitteln
if (ownercheck(userID)) llSay(0, " Du bist mein Besitzer");
else llSay(0, " Du bist nicht mein Besitzer");
if (groupcheck(userID)) llSay(0, " Wir haben die gleiche aktive Gruppe");
else llSay(0, " Du hast eine andere Gruppe aktiv als ich");
if (berechtigungscheck(userID)) llSay(0, " Du darfst mich steuern");
else llSay(0, " Du darfst mich nicht steuern");
}
}
Viel Spaß
Tron