diff options
author | Oren Hurvitz | 2012-04-23 19:20:46 +0300 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-04-27 20:22:35 +0100 |
commit | 9622e8ac72d29b75b96d2dd481671b57d0a204bf (patch) | |
tree | b6fc23ad072190b1e260a7071e9b49b3f50f99ce /OpenSim/Region/CoreModules/World/Permissions | |
parent | Use DotNetZip to compress OARs and IARs. (diff) | |
download | opensim-SC-9622e8ac72d29b75b96d2dd481671b57d0a204bf.zip opensim-SC-9622e8ac72d29b75b96d2dd481671b57d0a204bf.tar.gz opensim-SC-9622e8ac72d29b75b96d2dd481671b57d0a204bf.tar.bz2 opensim-SC-9622e8ac72d29b75b96d2dd481671b57d0a204bf.tar.xz |
If a Grid God teleports then include the Godlike teleport flag. This can affect the starting position in the destination region.
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Permissions')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index 2032905..7d75fad 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | |||
@@ -166,6 +166,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
166 | m_scene.Permissions.OnDeedParcel += CanDeedParcel; | 166 | m_scene.Permissions.OnDeedParcel += CanDeedParcel; |
167 | m_scene.Permissions.OnDeedObject += CanDeedObject; | 167 | m_scene.Permissions.OnDeedObject += CanDeedObject; |
168 | m_scene.Permissions.OnIsGod += IsGod; | 168 | m_scene.Permissions.OnIsGod += IsGod; |
169 | m_scene.Permissions.OnIsGridGod += IsGridGod; | ||
169 | m_scene.Permissions.OnIsAdministrator += IsAdministrator; | 170 | m_scene.Permissions.OnIsAdministrator += IsAdministrator; |
170 | m_scene.Permissions.OnDuplicateObject += CanDuplicateObject; | 171 | m_scene.Permissions.OnDuplicateObject += CanDuplicateObject; |
171 | m_scene.Permissions.OnDeleteObject += CanDeleteObject; //MAYBE FULLY IMPLEMENTED | 172 | m_scene.Permissions.OnDeleteObject += CanDeleteObject; //MAYBE FULLY IMPLEMENTED |
@@ -466,22 +467,34 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
466 | if (IsEstateManager(user) && m_RegionManagerIsGod) | 467 | if (IsEstateManager(user) && m_RegionManagerIsGod) |
467 | return true; | 468 | return true; |
468 | 469 | ||
470 | if (IsGridGod(user, null)) | ||
471 | return true; | ||
472 | |||
473 | return false; | ||
474 | } | ||
475 | |||
476 | /// <summary> | ||
477 | /// Is the given user a God throughout the grid (not just in the current scene)? | ||
478 | /// </summary> | ||
479 | /// <param name="user">The user</param> | ||
480 | /// <param name="scene">Unused, can be null</param> | ||
481 | /// <returns></returns> | ||
482 | protected bool IsGridGod(UUID user, Scene scene) | ||
483 | { | ||
484 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); | ||
485 | if (m_bypassPermissions) return m_bypassPermissionsValue; | ||
486 | |||
487 | if (user == UUID.Zero) return false; | ||
488 | |||
469 | if (m_allowGridGods) | 489 | if (m_allowGridGods) |
470 | { | 490 | { |
471 | ScenePresence sp = m_scene.GetScenePresence(user); | 491 | ScenePresence sp = m_scene.GetScenePresence(user); |
472 | if (sp != null) | 492 | if (sp != null) |
473 | { | 493 | return (sp.UserLevel >= 200); |
474 | if (sp.UserLevel >= 200) | ||
475 | return true; | ||
476 | return false; | ||
477 | } | ||
478 | 494 | ||
479 | UserAccount account = m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, user); | 495 | UserAccount account = m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, user); |
480 | if (account != null) | 496 | if (account != null) |
481 | { | 497 | return (account.UserLevel >= 200); |
482 | if (account.UserLevel >= 200) | ||
483 | return true; | ||
484 | } | ||
485 | } | 498 | } |
486 | 499 | ||
487 | return false; | 500 | return false; |