aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTeravus Ovares2008-05-15 20:29:28 +0000
committerTeravus Ovares2008-05-15 20:29:28 +0000
commit0976949ad4fe2ae299c44b9c65be8669509916de (patch)
tree93fa918a24bc3966a4776072f8f16d6f7929d9b4
parenttesting avatar appearance as a user service (diff)
downloadopensim-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.
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs18
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 {