diff options
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, |