Group Authorization

From Second Life Wiki
Revision as of 07:04, 13 October 2012 by Kireji Haiku (talk | contribs) (added missing run_time_permissions event)
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

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

} </lsl>