Group Authorization

From Second Life Wiki
Revision as of 21:29, 24 January 2015 by ObviousAltIsObvious Resident (talk | contribs) (<lsl> tag to <source>)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Group Authorization

This script is used to check whether the object is set to the appropriate group (by group key).


The Script

//  © 2009 Chase Quinnell and TerraCo Designs
//  http://www.terracodesigns.com
//  Please keep this open source and leave my name reference here

//  This is the group key for the authorized group.
string authgroupkey = "INSERT YOUR GROUP KEY HERE";

Unauthorized()
{
    string thisScript = llGetScriptName();

    llOwnerSay("/me [" + thisScript + "]: Sorry, you're wearing the wrong group tag.");
    llDetachFromAvatar();
    llRemoveInventory(thisScript);
    llDie();
}

default
{
    on_rez(integer start_param)
    {
        llResetScript();
    }

    state_entry()
    {
        key ownerKey = llGetOwner();
        llRequestPermissions(ownerKey, PERMISSION_ATTACH);

        key thisPrimsKey = llGetKey();
        string groupKey = llList2String(llGetObjectDetails(thisPrimsKey, [OBJECT_GROUP]), 0);

        if (groupKey != authgroupkey)
            Unauthorized();
        else
            llOwnerSay("Authorization passed");
    }

    run_time_permissions(integer perm)
    {
        if (!(perm & PERMISSION_ATTACH))
            llResetScript();
    }
}