Difference between revisions of "Group Authorization"

From Second Life Wiki
Jump to navigation Jump to search
(added missing run_time_permissions event)
m (<lsl> tag to <source>)
 
Line 8: Line 8:
==The Script==
==The Script==


<lsl>
<source lang="lsl2">
//  © 2009 Chase Quinnell and TerraCo Designs
//  © 2009 Chase Quinnell and TerraCo Designs
//  http://www.terracodesigns.com
//  http://www.terracodesigns.com
Line 53: Line 53:
     }
     }
}
}
</lsl>
</source>

Latest revision as of 21:29, 24 January 2015

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();
    }
}