diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Permissions')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index f66f01f..8fa0c65 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | |||
@@ -32,7 +32,7 @@ using log4net; | |||
32 | using Nini.Config; | 32 | using Nini.Config; |
33 | using OpenMetaverse; | 33 | using OpenMetaverse; |
34 | using OpenSim.Framework; | 34 | using OpenSim.Framework; |
35 | using OpenSim.Framework.Communications.Cache; | 35 | |
36 | using OpenSim.Region.Framework.Interfaces; | 36 | using OpenSim.Region.Framework.Interfaces; |
37 | using OpenSim.Region.Framework.Scenes; | 37 | using OpenSim.Region.Framework.Scenes; |
38 | using OpenSim.Services.Interfaces; | 38 | using OpenSim.Services.Interfaces; |
@@ -95,6 +95,23 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
95 | 95 | ||
96 | protected Scene m_scene; | 96 | protected Scene m_scene; |
97 | 97 | ||
98 | private InventoryFolderImpl m_libraryRootFolder; | ||
99 | protected InventoryFolderImpl LibraryRootFolder | ||
100 | { | ||
101 | get | ||
102 | { | ||
103 | if (m_libraryRootFolder != null) | ||
104 | return m_libraryRootFolder; | ||
105 | |||
106 | ILibraryService lib = m_scene.RequestModuleInterface<ILibraryService>(); | ||
107 | if (lib != null) | ||
108 | { | ||
109 | m_libraryRootFolder = lib.LibraryRootFolder; | ||
110 | } | ||
111 | return m_libraryRootFolder; | ||
112 | } | ||
113 | } | ||
114 | |||
98 | #region Constants | 115 | #region Constants |
99 | // These are here for testing. They will be taken out | 116 | // These are here for testing. They will be taken out |
100 | 117 | ||
@@ -460,12 +477,6 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
460 | { | 477 | { |
461 | if (user == UUID.Zero) return false; | 478 | if (user == UUID.Zero) return false; |
462 | 479 | ||
463 | if (m_scene.RegionInfo.MasterAvatarAssignedUUID != UUID.Zero) | ||
464 | { | ||
465 | if (m_RegionOwnerIsGod && (m_scene.RegionInfo.MasterAvatarAssignedUUID == user)) | ||
466 | return true; | ||
467 | } | ||
468 | |||
469 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) | 480 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) |
470 | { | 481 | { |
471 | if (m_scene.RegionInfo.EstateSettings.EstateOwner == user) | 482 | if (m_scene.RegionInfo.EstateSettings.EstateOwner == user) |
@@ -474,10 +485,10 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
474 | 485 | ||
475 | if (m_allowGridGods) | 486 | if (m_allowGridGods) |
476 | { | 487 | { |
477 | CachedUserInfo profile = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(user); | 488 | UserAccount account = m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, user); |
478 | if (profile != null && profile.UserProfile != null) | 489 | if (account != null) |
479 | { | 490 | { |
480 | if (profile.UserProfile.GodLevel >= 200) | 491 | if (account.UserLevel >= 200) |
481 | return true; | 492 | return true; |
482 | } | 493 | } |
483 | } | 494 | } |
@@ -1008,9 +1019,9 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1008 | IInventoryService invService = m_scene.InventoryService; | 1019 | IInventoryService invService = m_scene.InventoryService; |
1009 | InventoryItemBase assetRequestItem = new InventoryItemBase(notecard, user); | 1020 | InventoryItemBase assetRequestItem = new InventoryItemBase(notecard, user); |
1010 | assetRequestItem = invService.GetItem(assetRequestItem); | 1021 | assetRequestItem = invService.GetItem(assetRequestItem); |
1011 | if (assetRequestItem == null) // Library item | 1022 | if (assetRequestItem == null && LibraryRootFolder != null) // Library item |
1012 | { | 1023 | { |
1013 | assetRequestItem = scene.CommsManager.UserProfileCacheService.LibraryRoot.FindItem(notecard); | 1024 | assetRequestItem = LibraryRootFolder.FindItem(notecard); |
1014 | 1025 | ||
1015 | if (assetRequestItem != null) // Implicitly readable | 1026 | if (assetRequestItem != null) // Implicitly readable |
1016 | return true; | 1027 | return true; |
@@ -1428,9 +1439,9 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1428 | IInventoryService invService = m_scene.InventoryService; | 1439 | IInventoryService invService = m_scene.InventoryService; |
1429 | InventoryItemBase assetRequestItem = new InventoryItemBase(script, user); | 1440 | InventoryItemBase assetRequestItem = new InventoryItemBase(script, user); |
1430 | assetRequestItem = invService.GetItem(assetRequestItem); | 1441 | assetRequestItem = invService.GetItem(assetRequestItem); |
1431 | if (assetRequestItem == null) // Library item | 1442 | if (assetRequestItem == null && LibraryRootFolder != null) // Library item |
1432 | { | 1443 | { |
1433 | assetRequestItem = m_scene.CommsManager.UserProfileCacheService.LibraryRoot.FindItem(script); | 1444 | assetRequestItem = LibraryRootFolder.FindItem(script); |
1434 | 1445 | ||
1435 | if (assetRequestItem != null) // Implicitly readable | 1446 | if (assetRequestItem != null) // Implicitly readable |
1436 | return true; | 1447 | return true; |
@@ -1523,9 +1534,9 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1523 | IInventoryService invService = m_scene.InventoryService; | 1534 | IInventoryService invService = m_scene.InventoryService; |
1524 | InventoryItemBase assetRequestItem = new InventoryItemBase(notecard, user); | 1535 | InventoryItemBase assetRequestItem = new InventoryItemBase(notecard, user); |
1525 | assetRequestItem = invService.GetItem(assetRequestItem); | 1536 | assetRequestItem = invService.GetItem(assetRequestItem); |
1526 | if (assetRequestItem == null) // Library item | 1537 | if (assetRequestItem == null && LibraryRootFolder != null) // Library item |
1527 | { | 1538 | { |
1528 | assetRequestItem = m_scene.CommsManager.UserProfileCacheService.LibraryRoot.FindItem(notecard); | 1539 | assetRequestItem = LibraryRootFolder.FindItem(notecard); |
1529 | 1540 | ||
1530 | if (assetRequestItem != null) // Implicitly readable | 1541 | if (assetRequestItem != null) // Implicitly readable |
1531 | return true; | 1542 | return true; |