diff options
author | Teravus Ovares | 2008-05-15 20:29:28 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-05-15 20:29:28 +0000 |
commit | 0976949ad4fe2ae299c44b9c65be8669509916de (patch) | |
tree | 93fa918a24bc3966a4776072f8f16d6f7929d9b4 /OpenSim/Region | |
parent | testing avatar appearance as a user service (diff) | |
download | opensim-SC-0976949ad4fe2ae299c44b9c65be8669509916de.zip opensim-SC-0976949ad4fe2ae299c44b9c65be8669509916de.tar.gz opensim-SC-0976949ad4fe2ae299c44b9c65be8669509916de.tar.bz2 opensim-SC-0976949ad4fe2ae299c44b9c65be8669509916de.tar.xz |
* Committing half of patch mantis 001291 from Melanie! Thanks Melanie.
* Fixes perms on take-copy assuming you have a specific flag set.. which is still in discussion.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index fb142f5..6aef45e 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -1094,12 +1094,20 @@ namespace OpenSim.Region.Environment.Scenes | |||
1094 | item.Folder = DeRezPacket.AgentBlock.DestinationID; | 1094 | item.Folder = DeRezPacket.AgentBlock.DestinationID; |
1095 | if ((remoteClient.AgentId != objectGroup.RootPart.OwnerID) && ExternalChecks.ExternalChecksPropagatePermissions()) | 1095 | if ((remoteClient.AgentId != objectGroup.RootPart.OwnerID) && ExternalChecks.ExternalChecksPropagatePermissions()) |
1096 | { | 1096 | { |
1097 | objectGroup.ApplyNextOwnerPermissions(); | 1097 | uint perms=objectGroup.GetEffectivePermissions(); |
1098 | 1098 | uint nextPerms=(perms & 7) << 13; | |
1099 | item.BasePermissions = objectGroup.GetEffectivePermissions() & objectGroup.RootPart.NextOwnerMask; | 1099 | if((nextPerms & (uint)PermissionMask.Copy) == 0) |
1100 | item.CurrentPermissions = objectGroup.GetEffectivePermissions() & objectGroup.RootPart.NextOwnerMask; | 1100 | perms &= ~(uint)PermissionMask.Copy; |
1101 | item.NextPermissions = objectGroup.GetEffectivePermissions() & objectGroup.RootPart.NextOwnerMask; | 1101 | if((nextPerms & (uint)PermissionMask.Transfer) == 0) |
1102 | perms &= ~(uint)PermissionMask.Transfer; | ||
1103 | if((nextPerms & (uint)PermissionMask.Modify) == 0) | ||
1104 | perms &= ~(uint)PermissionMask.Modify; | ||
1105 | |||
1106 | item.BasePermissions = perms & objectGroup.RootPart.NextOwnerMask; | ||
1107 | item.CurrentPermissions = item.BasePermissions; | ||
1108 | item.NextPermissions = objectGroup.RootPart.NextOwnerMask; | ||
1102 | item.EveryOnePermissions = objectGroup.RootPart.EveryoneMask & objectGroup.RootPart.NextOwnerMask; | 1109 | item.EveryOnePermissions = objectGroup.RootPart.EveryoneMask & objectGroup.RootPart.NextOwnerMask; |
1110 | item.CurrentPermissions |= 8; // Slam! | ||
1103 | } | 1111 | } |
1104 | else | 1112 | else |
1105 | { | 1113 | { |