diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | 34 |
1 files changed, 2 insertions, 32 deletions
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index f536a0f..6018c39 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | |||
@@ -94,9 +94,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
94 | private bool m_RegionOwnerIsGod = false; | 94 | private bool m_RegionOwnerIsGod = false; |
95 | private bool m_RegionManagerIsGod = false; | 95 | private bool m_RegionManagerIsGod = false; |
96 | private bool m_ParcelOwnerIsGod = false; | 96 | private bool m_ParcelOwnerIsGod = false; |
97 | 97 | ||
98 | private bool m_SimpleBuildPermissions = false; | ||
99 | |||
100 | /// <value> | 98 | /// <value> |
101 | /// The set of users that are allowed to create scripts. This is only active if permissions are not being | 99 | /// The set of users that are allowed to create scripts. This is only active if permissions are not being |
102 | /// bypassed. This overrides normal permissions. | 100 | /// bypassed. This overrides normal permissions. |
@@ -141,9 +139,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
141 | m_RegionOwnerIsGod = myConfig.GetBoolean("region_owner_is_god", true); | 139 | m_RegionOwnerIsGod = myConfig.GetBoolean("region_owner_is_god", true); |
142 | m_RegionManagerIsGod = myConfig.GetBoolean("region_manager_is_god", false); | 140 | m_RegionManagerIsGod = myConfig.GetBoolean("region_manager_is_god", false); |
143 | m_ParcelOwnerIsGod = myConfig.GetBoolean("parcel_owner_is_god", true); | 141 | m_ParcelOwnerIsGod = myConfig.GetBoolean("parcel_owner_is_god", true); |
144 | 142 | ||
145 | m_SimpleBuildPermissions = myConfig.GetBoolean("simple_build_permissions", false); | ||
146 | |||
147 | m_allowedScriptCreators | 143 | m_allowedScriptCreators |
148 | = ParseUserSetConfigSetting(myConfig, "allowed_script_creators", m_allowedScriptCreators); | 144 | = ParseUserSetConfigSetting(myConfig, "allowed_script_creators", m_allowedScriptCreators); |
149 | m_allowedScriptEditors | 145 | m_allowedScriptEditors |
@@ -210,9 +206,6 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
210 | m_scene.Permissions.OnControlPrimMedia += CanControlPrimMedia; | 206 | m_scene.Permissions.OnControlPrimMedia += CanControlPrimMedia; |
211 | m_scene.Permissions.OnInteractWithPrimMedia += CanInteractWithPrimMedia; | 207 | m_scene.Permissions.OnInteractWithPrimMedia += CanInteractWithPrimMedia; |
212 | 208 | ||
213 | if (m_SimpleBuildPermissions) | ||
214 | m_scene.Permissions.OnSendLandProperties += GenerateLandProperties; | ||
215 | |||
216 | m_scene.AddCommand("Users", this, "bypass permissions", | 209 | m_scene.AddCommand("Users", this, "bypass permissions", |
217 | "bypass permissions <true / false>", | 210 | "bypass permissions <true / false>", |
218 | "Bypass permission checks", | 211 | "Bypass permission checks", |
@@ -831,10 +824,6 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
831 | permission = true; | 824 | permission = true; |
832 | } | 825 | } |
833 | 826 | ||
834 | if (m_SimpleBuildPermissions && | ||
835 | (parcel.LandData.Flags & (uint)ParcelFlags.UseAccessList) == 0 && parcel.IsAllowedInLand(user)) | ||
836 | permission = true; | ||
837 | |||
838 | return permission; | 827 | return permission; |
839 | } | 828 | } |
840 | 829 | ||
@@ -1977,24 +1966,5 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1977 | 1966 | ||
1978 | return false; | 1967 | return false; |
1979 | } | 1968 | } |
1980 | |||
1981 | private void GenerateLandProperties(UUID userID, ILandObject realLand, out ILandObject landToSend) | ||
1982 | { | ||
1983 | landToSend = realLand; | ||
1984 | if (m_bypassPermissions) return; | ||
1985 | |||
1986 | if (m_SimpleBuildPermissions && | ||
1987 | !m_scene.Permissions.IsAdministrator(userID) && | ||
1988 | !realLand.LandData.OwnerID.Equals(userID) && | ||
1989 | ((realLand.LandData.Flags & (uint)ParcelFlags.UseAccessList) == 0 && realLand.IsAllowedInLand(userID))) | ||
1990 | { | ||
1991 | ILandObject clone = realLand.MemberwiseCopy(); | ||
1992 | LandData ldata = realLand.LandData.Copy(); | ||
1993 | clone.LandData = ldata; | ||
1994 | clone.LandData.Flags |= (uint)(ParcelFlags.AllowAPrimitiveEntry | ParcelFlags.AllowFly | ParcelFlags.AllowOtherScripts | ParcelFlags.CreateObjects); | ||
1995 | landToSend = clone; | ||
1996 | } | ||
1997 | } | ||
1998 | |||
1999 | } | 1969 | } |
2000 | } | 1970 | } |