Difference between revisions of "LlGetObjectPermMask"

From Second Life Wiki
Jump to navigation Jump to search
m (added some very short examples)
m (restructuring)
Line 28: Line 28:
string getPermsAsReadableString(integer perm)
string getPermsAsReadableString(integer perm)
{
{
    integer allPerms = PERM_ALL;
     integer fullPerms = PERM_COPY | PERM_MODIFY | PERM_TRANSFER;
     integer fullPerms = PERM_COPY | PERM_MODIFY | PERM_TRANSFER;
    integer copyModMovePerms = PERM_COPY | PERM_MODIFY | PERM_MOVE;
     integer copyModPerms = PERM_COPY | PERM_MODIFY;
     integer copyModPerms = PERM_COPY | PERM_MODIFY;
    integer copyTransMovePerms = PERM_COPY | PERM_TRANSFER | PERM_MOVE;
     integer copyTransPerms = PERM_COPY | PERM_TRANSFER;
     integer copyTransPerms = PERM_COPY | PERM_TRANSFER;
    integer modTransMovePerms = PERM_MODIFY | PERM_TRANSFER | PERM_MOVE;
     integer modTransPerms = PERM_MODIFY | PERM_TRANSFER;
     integer modTransPerms = PERM_MODIFY | PERM_TRANSFER;
    integer copyMovePerms = PERM_COPY | PERM_MOVE;
    integer transMovePerms = PERM_TRANSFER | PERM_MOVE;


     string output = " perms: ";
     string output = " perms: ";


     if ((perm & fullPerms) == fullPerms)
     if ((perm & allPerms) == allPerms)
        output += "full and move";
    else if ((perm & fullPerms) == fullPerms)
         output += "full";
         output += "full";
    else if ((perm & copyModMovePerms) == copyModMovePerms)
        output += "copy & modify & move";
     else if ((perm & copyModPerms) == copyModPerms)
     else if ((perm & copyModPerms) == copyModPerms)
         output += "copy & modify";
         output += "copy & modify";
    else if ((perm & copyTransMovePerms) == copyTransMovePerms)
        output += "copy & transfer & move";
     else if ((perm & copyTransPerms) == copyTransPerms)
     else if ((perm & copyTransPerms) == copyTransPerms)
         output += "copy & transfer";
         output += "copy & transfer";
    else if ((perm & modTransMovePerms) == modTransMovePerms)
        output += "modify & transfer & move";
     else if ((perm & modTransPerms) == modTransPerms)
     else if ((perm & modTransPerms) == modTransPerms)
         output += "modify & transfer";
         output += "modify & transfer";
    else if ((perm & copyMovePerms) == copyMovePerms)
        output += "copy & move";
     else if ((perm & PERM_COPY) == PERM_COPY)
     else if ((perm & PERM_COPY) == PERM_COPY)
         output += "copy";
         output += "copy";
    else if ((perm & transMovePerms) == transMovePerms)
        output += "transfer & move";
     else if ((perm & PERM_TRANSFER) == PERM_TRANSFER)
     else if ((perm & PERM_TRANSFER) == PERM_TRANSFER)
         output += "transfer";
         output += "transfer";
    else
        output += "none";


     //  remember, neither PERM_MODIFY only nor no perms at all is possible
     //  Remember, items in Second Life must have either
     //  items in Second Life either have PERM_COPY or PERM_TRANSFER at least
     //  PERM_COPY or PERM_TRANSFER when "talking about"
 
     //  owner perms or perms for next owner.
     if ((perm & PERM_MOVE) == PERM_MOVE) output += " and move";


     return
     return
Line 84: Line 108:
|also_articles=
|also_articles=
{{LSL DefineRow||[[hex]]}}
{{LSL DefineRow||[[hex]]}}
|notes=The perms of a newly created object often are Base = PERM_ALL, Owner = PERM_ALL, Next = PERM_MOVE or PERM_TRANSFER, Group = 0 (none), Everyone = 0 (none). The perms2String example describes those perms as "Closed / Yes Transfer".
|notes=
The perms of a newly created object are often:
  Base = PERM_ALL
  Owner = PERM_ALL
  Next = PERM_MOVE or PERM_TRANSFER
  Group = 0 (none)
  Everyone = 0 (none)
|cat1=Permissions/Asset
|cat1=Permissions/Asset
|cat2=Object
|cat2=Object

Revision as of 12:46, 25 November 2012

Summary

Function: integer llGetObjectPermMask( integer mask );

Returns an integer that is the requested permission mask for the root object the task is attached to.

• integer mask MASK_* flag

Category Description
MASK_BASE 0 The base permissions.
MASK_OWNER 1 Current owner permissions.
MASK_GROUP 2 Active group permissions.
MASK_EVERYONE 3 Permissions everyone has.
MASK_NEXT 4 Permissions the next owner will have.
Permissions Value Description
PERM_ALL 0x7FFFFFFF Move/Modify/Copy/Transfer permissions
PERM_COPY 0x00008000 Copy permission
PERM_MODIFY 0x00004000 Modify permission
PERM_MOVE 0x00080000 Move permission
PERM_TRANSFER 0x00002000 Transfer permission

Examples

<lsl> if ((permsYouHave & permsYouWant) == permsYouWant)

   llSay(PUBLIC_CHANNEL, "You have the perms you want.");

else

   llSay(PUBLIC_CHANNEL, "You don't have the perms you want.");

</lsl> <lsl> integer ownerPerms = llGetObjectPermMask(MASK_OWNER);

integer copyAndModPerms = PERM_COPY

Notes

The perms of a newly created object are often:

 Base = PERM_ALL
 Owner = PERM_ALL
 Next = PERM_MOVE or PERM_TRANSFER
 Group = 0 (none)
 Everyone = 0 (none)

See Also

Functions

•  llGetInventoryPermMask

Articles

•  hex

Deep Notes

Search JIRA for related Issues

Tests

•  llGetObjectPermMask_Test

Signature

function integer llGetObjectPermMask( integer mask );