Group Authorization

From Second Life Wiki
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();
    }
}