aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs')
-rw-r--r--OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs43
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;
32using Nini.Config; 32using Nini.Config;
33using OpenMetaverse; 33using OpenMetaverse;
34using OpenSim.Framework; 34using OpenSim.Framework;
35using OpenSim.Framework.Communications.Cache; 35
36using OpenSim.Region.Framework.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
37using OpenSim.Region.Framework.Scenes; 37using OpenSim.Region.Framework.Scenes;
38using OpenSim.Services.Interfaces; 38using 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;