diff options
author | Justin Clark-Casey (justincc) | 2011-07-23 01:59:14 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-07-23 01:59:14 +0100 |
commit | 667b54f5a2a04fa5a2859397868d270eab3913f1 (patch) | |
tree | bf91543d5c0c4aa6f1a25873be6acb86144675bc /OpenSim/Region | |
parent | Fix problem where sculpts were not getting physical proxies (diff) | |
download | opensim-SC_OLD-667b54f5a2a04fa5a2859397868d270eab3913f1.zip opensim-SC_OLD-667b54f5a2a04fa5a2859397868d270eab3913f1.tar.gz opensim-SC_OLD-667b54f5a2a04fa5a2859397868d270eab3913f1.tar.bz2 opensim-SC_OLD-667b54f5a2a04fa5a2859397868d270eab3913f1.tar.xz |
Don't load current/next/everyone/base permissions from the library item xml files - always use PermissionMask.All instead (which was the existing default).
Library items always need the same permissions, so it doesn't make sense to load them from the xml files. This just opens the door to permissions mistakes.
Diffstat (limited to 'OpenSim/Region')
3 files changed, 15 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index b714f2b..4933147 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -984,11 +984,14 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
984 | public virtual bool CanGetAgentInventoryItem(IClientAPI remoteClient, UUID itemID, UUID requestID) | 984 | public virtual bool CanGetAgentInventoryItem(IClientAPI remoteClient, UUID itemID, UUID requestID) |
985 | { | 985 | { |
986 | InventoryItemBase assetRequestItem = GetItem(remoteClient.AgentId, itemID); | 986 | InventoryItemBase assetRequestItem = GetItem(remoteClient.AgentId, itemID); |
987 | |||
987 | if (assetRequestItem == null) | 988 | if (assetRequestItem == null) |
988 | { | 989 | { |
989 | ILibraryService lib = m_Scene.RequestModuleInterface<ILibraryService>(); | 990 | ILibraryService lib = m_Scene.RequestModuleInterface<ILibraryService>(); |
991 | |||
990 | if (lib != null) | 992 | if (lib != null) |
991 | assetRequestItem = lib.LibraryRootFolder.FindItem(itemID); | 993 | assetRequestItem = lib.LibraryRootFolder.FindItem(itemID); |
994 | |||
992 | if (assetRequestItem == null) | 995 | if (assetRequestItem == null) |
993 | return false; | 996 | return false; |
994 | } | 997 | } |
@@ -1019,6 +1022,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
1019 | m_log.WarnFormat( | 1022 | m_log.WarnFormat( |
1020 | "[CLIENT]: {0} requested asset {1} from item {2} but this does not match item's asset {3}", | 1023 | "[CLIENT]: {0} requested asset {1} from item {2} but this does not match item's asset {3}", |
1021 | Name, requestID, itemID, assetRequestItem.AssetID); | 1024 | Name, requestID, itemID, assetRequestItem.AssetID); |
1025 | |||
1022 | return false; | 1026 | return false; |
1023 | } | 1027 | } |
1024 | 1028 | ||
diff --git a/OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs b/OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs index d570608..2ef4457 100644 --- a/OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs +++ b/OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs | |||
@@ -185,6 +185,7 @@ namespace OpenSim.Region.CoreModules.Framework.Library | |||
185 | archread = new InventoryArchiveReadRequest(m_MockScene, uinfo, "/", iarFileName, false); | 185 | archread = new InventoryArchiveReadRequest(m_MockScene, uinfo, "/", iarFileName, false); |
186 | archread.Execute(); | 186 | archread.Execute(); |
187 | } | 187 | } |
188 | |||
188 | foreach (InventoryNodeBase node in nodes) | 189 | foreach (InventoryNodeBase node in nodes) |
189 | FixPerms(node); | 190 | FixPerms(node); |
190 | } | 191 | } |
@@ -197,18 +198,23 @@ namespace OpenSim.Region.CoreModules.Framework.Library | |||
197 | archread.Close(); | 198 | archread.Close(); |
198 | } | 199 | } |
199 | } | 200 | } |
200 | |||
201 | } | 201 | } |
202 | 202 | ||
203 | private void FixPerms(InventoryNodeBase node) | 203 | private void FixPerms(InventoryNodeBase node) |
204 | { | 204 | { |
205 | m_log.DebugFormat("[LIBRARY MODULE]: Fixing perms for {0} {1}", node.Name, node.ID); | ||
206 | |||
205 | if (node is InventoryItemBase) | 207 | if (node is InventoryItemBase) |
206 | { | 208 | { |
207 | InventoryItemBase item = (InventoryItemBase)node; | 209 | InventoryItemBase item = (InventoryItemBase)node; |
210 | // item.BasePermissions = (uint)PermissionMask.All; | ||
208 | item.BasePermissions = 0x7FFFFFFF; | 211 | item.BasePermissions = 0x7FFFFFFF; |
209 | item.EveryOnePermissions = 0x7FFFFFFF; | 212 | item.EveryOnePermissions = 0x7FFFFFFF; |
210 | item.CurrentPermissions = 0x7FFFFFFF; | 213 | item.CurrentPermissions = 0x7FFFFFFF; |
211 | item.NextPermissions = 0x7FFFFFFF; | 214 | item.NextPermissions = 0x7FFFFFFF; |
215 | // item.EveryOnePermissions = (uint)PermissionMask.Copy; | ||
216 | // item.CurrentPermissions = (uint)PermissionMask.None; | ||
217 | // item.NextPermissions = (uint)PermissionMask.All; | ||
212 | } | 218 | } |
213 | } | 219 | } |
214 | 220 | ||
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 30421d4..afc1a4f 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -724,7 +724,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
724 | newName = item.Name; | 724 | newName = item.Name; |
725 | } | 725 | } |
726 | 726 | ||
727 | if (remoteClient.AgentId == oldAgentID || (LibraryService != null && LibraryService.LibraryRootFolder != null && oldAgentID == LibraryService.LibraryRootFolder.Owner)) | 727 | if (remoteClient.AgentId == oldAgentID |
728 | || (LibraryService != null | ||
729 | && LibraryService.LibraryRootFolder != null | ||
730 | && oldAgentID == LibraryService.LibraryRootFolder.Owner)) | ||
728 | { | 731 | { |
729 | CreateNewInventoryItem( | 732 | CreateNewInventoryItem( |
730 | remoteClient, item.CreatorId, item.CreatorData, newFolderID, newName, item.Flags, callbackID, asset, (sbyte)item.InvType, | 733 | remoteClient, item.CreatorId, item.CreatorData, newFolderID, newName, item.Flags, callbackID, asset, (sbyte)item.InvType, |