aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie Thielker2010-07-29 16:33:20 +0200
committerMelanie Thielker2010-07-29 16:33:20 +0200
commit7871dd606eb8c827101ee4ee3c64d00139e1a0b4 (patch)
treee51c9a91c18a45364faa42035beddcfe63583029 /OpenSim
parentEat a lockign exception that kills scripts. May bear more investigation (diff)
downloadopensim-SC_OLD-7871dd606eb8c827101ee4ee3c64d00139e1a0b4.zip
opensim-SC_OLD-7871dd606eb8c827101ee4ee3c64d00139e1a0b4.tar.gz
opensim-SC_OLD-7871dd606eb8c827101ee4ee3c64d00139e1a0b4.tar.bz2
opensim-SC_OLD-7871dd606eb8c827101ee4ee3c64d00139e1a0b4.tar.xz
Allow gods and estate managers/owners to be unaffected by parcel bans
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandObject.cs6
-rw-r--r--OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs1
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Permissions.cs17
3 files changed, 24 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
index 2a87da2..6864629 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
@@ -283,6 +283,9 @@ namespace OpenSim.Region.CoreModules.World.Land
283 283
284 public bool IsBannedFromLand(UUID avatar) 284 public bool IsBannedFromLand(UUID avatar)
285 { 285 {
286 if (m_scene.Permissions.IsAdministrator(avatar))
287 return false;
288
286 if ((LandData.Flags & (uint) ParcelFlags.UseBanList) > 0) 289 if ((LandData.Flags & (uint) ParcelFlags.UseBanList) > 0)
287 { 290 {
288 ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); 291 ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry();
@@ -301,6 +304,9 @@ namespace OpenSim.Region.CoreModules.World.Land
301 304
302 public bool IsRestrictedFromLand(UUID avatar) 305 public bool IsRestrictedFromLand(UUID avatar)
303 { 306 {
307 if (m_scene.Permissions.IsAdministrator(avatar))
308 return false;
309
304 if ((LandData.Flags & (uint) ParcelFlags.UseAccessList) > 0) 310 if ((LandData.Flags & (uint) ParcelFlags.UseAccessList) > 0)
305 { 311 {
306 ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); 312 ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry();
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
index 69b247c..1d70546 100644
--- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
+++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
@@ -209,6 +209,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
209 m_scene.Permissions.OnDeedParcel += CanDeedParcel; 209 m_scene.Permissions.OnDeedParcel += CanDeedParcel;
210 m_scene.Permissions.OnDeedObject += CanDeedObject; 210 m_scene.Permissions.OnDeedObject += CanDeedObject;
211 m_scene.Permissions.OnIsGod += IsGod; 211 m_scene.Permissions.OnIsGod += IsGod;
212 m_scene.Permissions.OnIsAdministrator += IsAdministrator;
212 m_scene.Permissions.OnDuplicateObject += CanDuplicateObject; 213 m_scene.Permissions.OnDuplicateObject += CanDuplicateObject;
213 m_scene.Permissions.OnDeleteObject += CanDeleteObject; //MAYBE FULLY IMPLEMENTED 214 m_scene.Permissions.OnDeleteObject += CanDeleteObject; //MAYBE FULLY IMPLEMENTED
214 m_scene.Permissions.OnEditObject += CanEditObject; //MAYBE FULLY IMPLEMENTED 215 m_scene.Permissions.OnEditObject += CanEditObject; //MAYBE FULLY IMPLEMENTED
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
index 7dab04f..a523351 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
@@ -64,6 +64,7 @@ namespace OpenSim.Region.Framework.Scenes
64 public delegate bool RunConsoleCommandHandler(UUID user, Scene requestFromScene); 64 public delegate bool RunConsoleCommandHandler(UUID user, Scene requestFromScene);
65 public delegate bool IssueEstateCommandHandler(UUID user, Scene requestFromScene, bool ownerCommand); 65 public delegate bool IssueEstateCommandHandler(UUID user, Scene requestFromScene, bool ownerCommand);
66 public delegate bool IsGodHandler(UUID user, Scene requestFromScene); 66 public delegate bool IsGodHandler(UUID user, Scene requestFromScene);
67 public delegate bool IsAdministratorHandler(UUID user);
67 public delegate bool EditParcelHandler(UUID user, ILandObject parcel, Scene scene); 68 public delegate bool EditParcelHandler(UUID user, ILandObject parcel, Scene scene);
68 public delegate bool SellParcelHandler(UUID user, ILandObject parcel, Scene scene); 69 public delegate bool SellParcelHandler(UUID user, ILandObject parcel, Scene scene);
69 public delegate bool AbandonParcelHandler(UUID user, ILandObject parcel, Scene scene); 70 public delegate bool AbandonParcelHandler(UUID user, ILandObject parcel, Scene scene);
@@ -122,6 +123,7 @@ namespace OpenSim.Region.Framework.Scenes
122 public event RunConsoleCommandHandler OnRunConsoleCommand; 123 public event RunConsoleCommandHandler OnRunConsoleCommand;
123 public event IssueEstateCommandHandler OnIssueEstateCommand; 124 public event IssueEstateCommandHandler OnIssueEstateCommand;
124 public event IsGodHandler OnIsGod; 125 public event IsGodHandler OnIsGod;
126 public event IsAdministratorHandler OnIsAdministrator;
125 public event EditParcelHandler OnEditParcel; 127 public event EditParcelHandler OnEditParcel;
126 public event SellParcelHandler OnSellParcel; 128 public event SellParcelHandler OnSellParcel;
127 public event AbandonParcelHandler OnAbandonParcel; 129 public event AbandonParcelHandler OnAbandonParcel;
@@ -652,6 +654,21 @@ namespace OpenSim.Region.Framework.Scenes
652 } 654 }
653 return true; 655 return true;
654 } 656 }
657
658 public bool IsAdministrator(UUID user)
659 {
660 IsAdministratorHandler handler = OnIsAdministrator;
661 if (handler != null)
662 {
663 Delegate[] list = handler.GetInvocationList();
664 foreach (IsAdministratorHandler h in list)
665 {
666 if (h(user) == false)
667 return false;
668 }
669 }
670 return true;
671 }
655 #endregion 672 #endregion
656 673
657 #region EDIT PARCEL 674 #region EDIT PARCEL