diff options
author | Melanie Thielker | 2008-08-14 18:08:22 +0000 |
---|---|---|
committer | Melanie Thielker | 2008-08-14 18:08:22 +0000 |
commit | c2f1771c63108c78b799a4f107cabe7e33984866 (patch) | |
tree | 40b76fc02e6ec938d841f3d51f11417131cfb850 /OpenSim/Region/Environment/Modules | |
parent | Mantis #1953 (diff) | |
download | opensim-SC-c2f1771c63108c78b799a4f107cabe7e33984866.zip opensim-SC-c2f1771c63108c78b799a4f107cabe7e33984866.tar.gz opensim-SC-c2f1771c63108c78b799a4f107cabe7e33984866.tar.bz2 opensim-SC-c2f1771c63108c78b799a4f107cabe7e33984866.tar.xz |
Make the estate owner work. Changes permissions checks to allow the
estate owner user the ability to add and remove estate managers,
and have EM rights outside of that.
Diffstat (limited to 'OpenSim/Region/Environment/Modules')
-rw-r--r-- | OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs | 12 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs | 8 |
2 files changed, 11 insertions, 9 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs index 1be587a..d22aac6 100644 --- a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs | |||
@@ -218,7 +218,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
218 | switch (estateAccessType) | 218 | switch (estateAccessType) |
219 | { | 219 | { |
220 | case 64: | 220 | case 64: |
221 | if (m_scene.ExternalChecks.ExternalChecksCanIssueEstateCommand(remote_client.AgentId) || m_scene.ExternalChecks.ExternalChecksBypassPermissions()) | 221 | if (m_scene.ExternalChecks.ExternalChecksCanIssueEstateCommand(remote_client.AgentId, false) || m_scene.ExternalChecks.ExternalChecksBypassPermissions()) |
222 | { | 222 | { |
223 | EstateBan[] banlistcheck = m_scene.RegionInfo.EstateSettings.EstateBans; | 223 | EstateBan[] banlistcheck = m_scene.RegionInfo.EstateSettings.EstateBans; |
224 | 224 | ||
@@ -267,7 +267,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
267 | } | 267 | } |
268 | break; | 268 | break; |
269 | case 128: | 269 | case 128: |
270 | if (m_scene.ExternalChecks.ExternalChecksCanIssueEstateCommand(remote_client.AgentId) || m_scene.ExternalChecks.ExternalChecksBypassPermissions()) | 270 | if (m_scene.ExternalChecks.ExternalChecksCanIssueEstateCommand(remote_client.AgentId, false) || m_scene.ExternalChecks.ExternalChecksBypassPermissions()) |
271 | { | 271 | { |
272 | EstateBan[] banlistcheck = m_scene.RegionInfo.EstateSettings.EstateBans; | 272 | EstateBan[] banlistcheck = m_scene.RegionInfo.EstateSettings.EstateBans; |
273 | 273 | ||
@@ -303,9 +303,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
303 | break; | 303 | break; |
304 | case 256: | 304 | case 256: |
305 | 305 | ||
306 | // This needs to be updated for SuperEstateOwnerUser.. a non existing user in the estatesettings.xml | 306 | if (m_scene.ExternalChecks.ExternalChecksCanIssueEstateCommand(remote_client.AgentId, true) || m_scene.ExternalChecks.ExternalChecksBypassPermissions()) |
307 | // So make sure you really trust your region owners. because they can add other estate manaagers to your other estates | ||
308 | if (remote_client.AgentId == m_scene.RegionInfo.MasterAvatarAssignedUUID || m_scene.ExternalChecks.ExternalChecksBypassPermissions()) | ||
309 | { | 307 | { |
310 | m_scene.RegionInfo.EstateSettings.AddEstateManager(user); | 308 | m_scene.RegionInfo.EstateSettings.AddEstateManager(user); |
311 | m_scene.RegionInfo.EstateSettings.Save(); | 309 | m_scene.RegionInfo.EstateSettings.Save(); |
@@ -318,9 +316,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
318 | 316 | ||
319 | break; | 317 | break; |
320 | case 512: | 318 | case 512: |
321 | // This needs to be updated for SuperEstateOwnerUser.. a non existing user in the estatesettings.xml | 319 | if (m_scene.ExternalChecks.ExternalChecksCanIssueEstateCommand(remote_client.AgentId, true) || m_scene.ExternalChecks.ExternalChecksBypassPermissions()) |
322 | // So make sure you really trust your region owners. because they can add other estate manaagers to your other estates | ||
323 | if (remote_client.AgentId == m_scene.RegionInfo.MasterAvatarAssignedUUID || m_scene.ExternalChecks.ExternalChecksBypassPermissions()) | ||
324 | { | 320 | { |
325 | m_scene.RegionInfo.EstateSettings.RemoveEstateManager(user); | 321 | m_scene.RegionInfo.EstateSettings.RemoveEstateManager(user); |
326 | m_scene.RegionInfo.EstateSettings.Save(); | 322 | m_scene.RegionInfo.EstateSettings.Save(); |
diff --git a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs index 0dfcb44..25ea282 100644 --- a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs | |||
@@ -626,11 +626,17 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions | |||
626 | return GenericCommunicationPermission(user, target); | 626 | return GenericCommunicationPermission(user, target); |
627 | } | 627 | } |
628 | 628 | ||
629 | private bool CanIssueEstateCommand(LLUUID user, Scene requestFromScene) | 629 | private bool CanIssueEstateCommand(LLUUID user, Scene requestFromScene, bool ownerCommand) |
630 | { | 630 | { |
631 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); | 631 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); |
632 | if (m_bypassPermissions) return m_bypassPermissionsValue; | 632 | if (m_bypassPermissions) return m_bypassPermissionsValue; |
633 | 633 | ||
634 | if (m_scene.RegionInfo.EstateSettings.IsEstateOwner(user)) | ||
635 | return true; | ||
636 | |||
637 | if (ownerCommand) | ||
638 | return false; | ||
639 | |||
634 | return GenericEstatePermission(user); | 640 | return GenericEstatePermission(user); |
635 | } | 641 | } |
636 | 642 | ||