diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Permissions')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | 214 |
1 files changed, 107 insertions, 107 deletions
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index 06900f0..1a61771 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | |||
@@ -47,7 +47,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
47 | public class DefaultPermissionsModule : INonSharedRegionModule, IPermissionsModule | 47 | public class DefaultPermissionsModule : INonSharedRegionModule, IPermissionsModule |
48 | { | 48 | { |
49 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 49 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
50 | 50 | ||
51 | protected Scene m_scene; | 51 | protected Scene m_scene; |
52 | protected bool m_Enabled; | 52 | protected bool m_Enabled; |
53 | 53 | ||
@@ -77,7 +77,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
77 | private uint PERM_MOVE = (uint)524288; | 77 | private uint PERM_MOVE = (uint)524288; |
78 | private uint PERM_TRANS = (uint)8192; | 78 | private uint PERM_TRANS = (uint)8192; |
79 | private uint PERM_LOCKED = (uint)540672; | 79 | private uint PERM_LOCKED = (uint)540672; |
80 | 80 | ||
81 | /// <value> | 81 | /// <value> |
82 | /// Different user set names that come in from the configuration file. | 82 | /// Different user set names that come in from the configuration file. |
83 | /// </value> | 83 | /// </value> |
@@ -110,17 +110,17 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
110 | private UserSet m_allowedScriptCreators = UserSet.All; | 110 | private UserSet m_allowedScriptCreators = UserSet.All; |
111 | 111 | ||
112 | /// <value> | 112 | /// <value> |
113 | /// The set of users that are allowed to edit (save) scripts. This is only active if | 113 | /// The set of users that are allowed to edit (save) scripts. This is only active if |
114 | /// permissions are not being bypassed. This overrides normal permissions.- | 114 | /// permissions are not being bypassed. This overrides normal permissions.- |
115 | /// </value> | 115 | /// </value> |
116 | private UserSet m_allowedScriptEditors = UserSet.All; | 116 | private UserSet m_allowedScriptEditors = UserSet.All; |
117 | 117 | ||
118 | private Dictionary<string, bool> GrantLSL = new Dictionary<string, bool>(); | 118 | private Dictionary<string, bool> GrantLSL = new Dictionary<string, bool>(); |
119 | private Dictionary<string, bool> GrantCS = new Dictionary<string, bool>(); | 119 | private Dictionary<string, bool> GrantCS = new Dictionary<string, bool>(); |
120 | private Dictionary<string, bool> GrantVB = new Dictionary<string, bool>(); | 120 | private Dictionary<string, bool> GrantVB = new Dictionary<string, bool>(); |
121 | private Dictionary<string, bool> GrantJS = new Dictionary<string, bool>(); | 121 | private Dictionary<string, bool> GrantJS = new Dictionary<string, bool>(); |
122 | private Dictionary<string, bool> GrantYP = new Dictionary<string, bool>(); | 122 | private Dictionary<string, bool> GrantYP = new Dictionary<string, bool>(); |
123 | 123 | ||
124 | private IFriendsModule m_friendsModule; | 124 | private IFriendsModule m_friendsModule; |
125 | private IFriendsModule FriendsModule | 125 | private IFriendsModule FriendsModule |
126 | { | 126 | { |
@@ -169,20 +169,20 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
169 | m_Enabled = true; | 169 | m_Enabled = true; |
170 | 170 | ||
171 | m_allowGridGods = Util.GetConfigVarFromSections<bool>(config, "allow_grid_gods", | 171 | m_allowGridGods = Util.GetConfigVarFromSections<bool>(config, "allow_grid_gods", |
172 | new string[] { "Startup", "Permissions" }, false); | 172 | new string[] { "Startup", "Permissions" }, false); |
173 | m_bypassPermissions = !Util.GetConfigVarFromSections<bool>(config, "serverside_object_permissions", | 173 | m_bypassPermissions = !Util.GetConfigVarFromSections<bool>(config, "serverside_object_permissions", |
174 | new string[] { "Startup", "Permissions" }, true); | 174 | new string[] { "Startup", "Permissions" }, true); |
175 | m_propagatePermissions = Util.GetConfigVarFromSections<bool>(config, "propagate_permissions", | 175 | m_propagatePermissions = Util.GetConfigVarFromSections<bool>(config, "propagate_permissions", |
176 | new string[] { "Startup", "Permissions" }, true); | 176 | new string[] { "Startup", "Permissions" }, true); |
177 | m_RegionOwnerIsGod = Util.GetConfigVarFromSections<bool>(config, "region_owner_is_god", | 177 | m_RegionOwnerIsGod = Util.GetConfigVarFromSections<bool>(config, "region_owner_is_god", |
178 | new string[] { "Startup", "Permissions" }, true); | 178 | new string[] { "Startup", "Permissions" }, true); |
179 | m_RegionManagerIsGod = Util.GetConfigVarFromSections<bool>(config, "region_manager_is_god", | 179 | m_RegionManagerIsGod = Util.GetConfigVarFromSections<bool>(config, "region_manager_is_god", |
180 | new string[] { "Startup", "Permissions" }, false); | 180 | new string[] { "Startup", "Permissions" }, false); |
181 | m_ParcelOwnerIsGod = Util.GetConfigVarFromSections<bool>(config, "parcel_owner_is_god", | 181 | m_ParcelOwnerIsGod = Util.GetConfigVarFromSections<bool>(config, "parcel_owner_is_god", |
182 | new string[] { "Startup", "Permissions" }, false); | 182 | new string[] { "Startup", "Permissions" }, false); |
183 | 183 | ||
184 | m_SimpleBuildPermissions = Util.GetConfigVarFromSections<bool>(config, "simple_build_permissions", | 184 | m_SimpleBuildPermissions = Util.GetConfigVarFromSections<bool>(config, "simple_build_permissions", |
185 | new string[] { "Startup", "Permissions" }, false); | 185 | new string[] { "Startup", "Permissions" }, false); |
186 | 186 | ||
187 | m_allowedScriptCreators | 187 | m_allowedScriptCreators |
188 | = ParseUserSetConfigSetting(config, "allowed_script_creators", m_allowedScriptCreators); | 188 | = ParseUserSetConfigSetting(config, "allowed_script_creators", m_allowedScriptCreators); |
@@ -206,7 +206,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
206 | } | 206 | } |
207 | 207 | ||
208 | grant = Util.GetConfigVarFromSections<string>(config, "GrantCS", | 208 | grant = Util.GetConfigVarFromSections<string>(config, "GrantCS", |
209 | new string[] { "Startup", "Permissions" }, string.Empty); | 209 | new string[] { "Startup", "Permissions" }, string.Empty); |
210 | if (grant.Length > 0) | 210 | if (grant.Length > 0) |
211 | { | 211 | { |
212 | foreach (string uuidl in grant.Split(',')) | 212 | foreach (string uuidl in grant.Split(',')) |
@@ -273,46 +273,46 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
273 | m_scene.Permissions.OnIsAdministrator += IsAdministrator; | 273 | m_scene.Permissions.OnIsAdministrator += IsAdministrator; |
274 | m_scene.Permissions.OnIsEstateManager += IsEstateManager; | 274 | m_scene.Permissions.OnIsEstateManager += IsEstateManager; |
275 | m_scene.Permissions.OnDuplicateObject += CanDuplicateObject; | 275 | m_scene.Permissions.OnDuplicateObject += CanDuplicateObject; |
276 | m_scene.Permissions.OnDeleteObject += CanDeleteObject; | 276 | m_scene.Permissions.OnDeleteObject += CanDeleteObject; |
277 | m_scene.Permissions.OnEditObject += CanEditObject; | 277 | m_scene.Permissions.OnEditObject += CanEditObject; |
278 | m_scene.Permissions.OnEditParcelProperties += CanEditParcelProperties; | 278 | m_scene.Permissions.OnEditParcelProperties += CanEditParcelProperties; |
279 | m_scene.Permissions.OnInstantMessage += CanInstantMessage; | 279 | m_scene.Permissions.OnInstantMessage += CanInstantMessage; |
280 | m_scene.Permissions.OnInventoryTransfer += CanInventoryTransfer; | 280 | m_scene.Permissions.OnInventoryTransfer += CanInventoryTransfer; |
281 | m_scene.Permissions.OnIssueEstateCommand += CanIssueEstateCommand; | 281 | m_scene.Permissions.OnIssueEstateCommand += CanIssueEstateCommand; |
282 | m_scene.Permissions.OnMoveObject += CanMoveObject; | 282 | m_scene.Permissions.OnMoveObject += CanMoveObject; |
283 | m_scene.Permissions.OnObjectEntry += CanObjectEntry; | 283 | m_scene.Permissions.OnObjectEntry += CanObjectEntry; |
284 | m_scene.Permissions.OnReturnObjects += CanReturnObjects; | 284 | m_scene.Permissions.OnReturnObjects += CanReturnObjects; |
285 | m_scene.Permissions.OnRezObject += CanRezObject; | 285 | m_scene.Permissions.OnRezObject += CanRezObject; |
286 | m_scene.Permissions.OnRunConsoleCommand += CanRunConsoleCommand; | 286 | m_scene.Permissions.OnRunConsoleCommand += CanRunConsoleCommand; |
287 | m_scene.Permissions.OnRunScript += CanRunScript; | 287 | m_scene.Permissions.OnRunScript += CanRunScript; |
288 | m_scene.Permissions.OnCompileScript += CanCompileScript; | 288 | m_scene.Permissions.OnCompileScript += CanCompileScript; |
289 | m_scene.Permissions.OnSellParcel += CanSellParcel; | 289 | m_scene.Permissions.OnSellParcel += CanSellParcel; |
290 | m_scene.Permissions.OnTakeObject += CanTakeObject; | 290 | m_scene.Permissions.OnTakeObject += CanTakeObject; |
291 | m_scene.Permissions.OnSellGroupObject += CanSellGroupObject; | 291 | m_scene.Permissions.OnSellGroupObject += CanSellGroupObject; |
292 | m_scene.Permissions.OnTakeCopyObject += CanTakeCopyObject; | 292 | m_scene.Permissions.OnTakeCopyObject += CanTakeCopyObject; |
293 | m_scene.Permissions.OnTerraformLand += CanTerraformLand; | 293 | m_scene.Permissions.OnTerraformLand += CanTerraformLand; |
294 | m_scene.Permissions.OnLinkObject += CanLinkObject; | 294 | m_scene.Permissions.OnLinkObject += CanLinkObject; |
295 | m_scene.Permissions.OnDelinkObject += CanDelinkObject; | 295 | m_scene.Permissions.OnDelinkObject += CanDelinkObject; |
296 | m_scene.Permissions.OnBuyLand += CanBuyLand; | 296 | m_scene.Permissions.OnBuyLand += CanBuyLand; |
297 | 297 | ||
298 | m_scene.Permissions.OnViewNotecard += CanViewNotecard; | 298 | m_scene.Permissions.OnViewNotecard += CanViewNotecard; |
299 | m_scene.Permissions.OnViewScript += CanViewScript; | 299 | m_scene.Permissions.OnViewScript += CanViewScript; |
300 | m_scene.Permissions.OnEditNotecard += CanEditNotecard; | 300 | m_scene.Permissions.OnEditNotecard += CanEditNotecard; |
301 | m_scene.Permissions.OnEditScript += CanEditScript; | 301 | m_scene.Permissions.OnEditScript += CanEditScript; |
302 | 302 | ||
303 | m_scene.Permissions.OnCreateObjectInventory += CanCreateObjectInventory; | 303 | m_scene.Permissions.OnCreateObjectInventory += CanCreateObjectInventory; |
304 | m_scene.Permissions.OnEditObjectInventory += CanEditObjectInventory; | 304 | m_scene.Permissions.OnEditObjectInventory += CanEditObjectInventory; |
305 | m_scene.Permissions.OnCopyObjectInventory += CanCopyObjectInventory; | 305 | m_scene.Permissions.OnCopyObjectInventory += CanCopyObjectInventory; |
306 | m_scene.Permissions.OnDeleteObjectInventory += CanDeleteObjectInventory; | 306 | m_scene.Permissions.OnDeleteObjectInventory += CanDeleteObjectInventory; |
307 | m_scene.Permissions.OnResetScript += CanResetScript; | 307 | m_scene.Permissions.OnResetScript += CanResetScript; |
308 | 308 | ||
309 | m_scene.Permissions.OnCreateUserInventory += CanCreateUserInventory; | 309 | m_scene.Permissions.OnCreateUserInventory += CanCreateUserInventory; |
310 | m_scene.Permissions.OnCopyUserInventory += CanCopyUserInventory; | 310 | m_scene.Permissions.OnCopyUserInventory += CanCopyUserInventory; |
311 | m_scene.Permissions.OnEditUserInventory += CanEditUserInventory; | 311 | m_scene.Permissions.OnEditUserInventory += CanEditUserInventory; |
312 | m_scene.Permissions.OnDeleteUserInventory += CanDeleteUserInventory; | 312 | m_scene.Permissions.OnDeleteUserInventory += CanDeleteUserInventory; |
313 | 313 | ||
314 | m_scene.Permissions.OnTeleport += CanTeleport; | 314 | m_scene.Permissions.OnTeleport += CanTeleport; |
315 | 315 | ||
316 | m_scene.Permissions.OnControlPrimMedia += CanControlPrimMedia; | 316 | m_scene.Permissions.OnControlPrimMedia += CanControlPrimMedia; |
317 | m_scene.Permissions.OnInteractWithPrimMedia += CanInteractWithPrimMedia; | 317 | m_scene.Permissions.OnInteractWithPrimMedia += CanInteractWithPrimMedia; |
318 | 318 | ||
@@ -329,8 +329,8 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
329 | m_scene.AddCommand("Debug", this, "debug permissions", | 329 | m_scene.AddCommand("Debug", this, "debug permissions", |
330 | "debug permissions <true / false>", | 330 | "debug permissions <true / false>", |
331 | "Turn on permissions debugging", | 331 | "Turn on permissions debugging", |
332 | HandleDebugPermissions); | 332 | HandleDebugPermissions); |
333 | 333 | ||
334 | } | 334 | } |
335 | 335 | ||
336 | public void RegionLoaded(Scene scene) | 336 | public void RegionLoaded(Scene scene) |
@@ -441,7 +441,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
441 | { | 441 | { |
442 | m_scene.EventManager.TriggerPermissionError(user, reason); | 442 | m_scene.EventManager.TriggerPermissionError(user, reason); |
443 | } | 443 | } |
444 | 444 | ||
445 | protected void DebugPermissionInformation(string permissionCalled) | 445 | protected void DebugPermissionInformation(string permissionCalled) |
446 | { | 446 | { |
447 | if (m_debugPermissions) | 447 | if (m_debugPermissions) |
@@ -471,7 +471,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
471 | 471 | ||
472 | return false; | 472 | return false; |
473 | } | 473 | } |
474 | 474 | ||
475 | /// <summary> | 475 | /// <summary> |
476 | /// Parse a user set configuration setting | 476 | /// Parse a user set configuration setting |
477 | /// </summary> | 477 | /// </summary> |
@@ -483,28 +483,28 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
483 | { | 483 | { |
484 | UserSet userSet = defaultValue; | 484 | UserSet userSet = defaultValue; |
485 | 485 | ||
486 | string rawSetting = Util.GetConfigVarFromSections<string>(config, settingName, | 486 | string rawSetting = Util.GetConfigVarFromSections<string>(config, settingName, |
487 | new string[] {"Startup", "Permissions"}, defaultValue.ToString()); | 487 | new string[] {"Startup", "Permissions"}, defaultValue.ToString()); |
488 | 488 | ||
489 | // Temporary measure to allow 'gods' to be specified in config for consistency's sake. In the long term | 489 | // Temporary measure to allow 'gods' to be specified in config for consistency's sake. In the long term |
490 | // this should disappear. | 490 | // this should disappear. |
491 | if ("gods" == rawSetting.ToLower()) | 491 | if ("gods" == rawSetting.ToLower()) |
492 | rawSetting = UserSet.Administrators.ToString(); | 492 | rawSetting = UserSet.Administrators.ToString(); |
493 | 493 | ||
494 | // Doing it this was so that we can do a case insensitive conversion | 494 | // Doing it this was so that we can do a case insensitive conversion |
495 | try | 495 | try |
496 | { | 496 | { |
497 | userSet = (UserSet)Enum.Parse(typeof(UserSet), rawSetting, true); | 497 | userSet = (UserSet)Enum.Parse(typeof(UserSet), rawSetting, true); |
498 | } | 498 | } |
499 | catch | 499 | catch |
500 | { | 500 | { |
501 | m_log.ErrorFormat( | 501 | m_log.ErrorFormat( |
502 | "[PERMISSIONS]: {0} is not a valid {1} value, setting to {2}", | 502 | "[PERMISSIONS]: {0} is not a valid {1} value, setting to {2}", |
503 | rawSetting, settingName, userSet); | 503 | rawSetting, settingName, userSet); |
504 | } | 504 | } |
505 | 505 | ||
506 | m_log.DebugFormat("[PERMISSIONS]: {0} {1}", settingName, userSet); | 506 | m_log.DebugFormat("[PERMISSIONS]: {0} {1}", settingName, userSet); |
507 | 507 | ||
508 | return userSet; | 508 | return userSet; |
509 | } | 509 | } |
510 | 510 | ||
@@ -520,7 +520,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
520 | 520 | ||
521 | if (m_scene.RegionInfo.EstateSettings.EstateOwner == user && m_RegionOwnerIsGod) | 521 | if (m_scene.RegionInfo.EstateSettings.EstateOwner == user && m_RegionOwnerIsGod) |
522 | return true; | 522 | return true; |
523 | 523 | ||
524 | if (IsEstateManager(user) && m_RegionManagerIsGod) | 524 | if (IsEstateManager(user) && m_RegionManagerIsGod) |
525 | return true; | 525 | return true; |
526 | 526 | ||
@@ -558,7 +558,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
558 | } | 558 | } |
559 | 559 | ||
560 | protected bool IsFriendWithPerms(UUID user, UUID objectOwner) | 560 | protected bool IsFriendWithPerms(UUID user, UUID objectOwner) |
561 | { | 561 | { |
562 | if (user == UUID.Zero) | 562 | if (user == UUID.Zero) |
563 | return false; | 563 | return false; |
564 | 564 | ||
@@ -572,7 +572,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
572 | protected bool IsEstateManager(UUID user) | 572 | protected bool IsEstateManager(UUID user) |
573 | { | 573 | { |
574 | if (user == UUID.Zero) return false; | 574 | if (user == UUID.Zero) return false; |
575 | 575 | ||
576 | return m_scene.RegionInfo.EstateSettings.IsEstateManagerOrOwner(user); | 576 | return m_scene.RegionInfo.EstateSettings.IsEstateManagerOrOwner(user); |
577 | } | 577 | } |
578 | 578 | ||
@@ -777,7 +777,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
777 | // so just return true immediately and short circuit the more | 777 | // so just return true immediately and short circuit the more |
778 | // expensive group checks | 778 | // expensive group checks |
779 | return true; | 779 | return true; |
780 | 780 | ||
781 | //permission = true; | 781 | //permission = true; |
782 | } | 782 | } |
783 | else if (group.IsAttachment) | 783 | else if (group.IsAttachment) |
@@ -786,15 +786,15 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
786 | } | 786 | } |
787 | 787 | ||
788 | // m_log.DebugFormat( | 788 | // m_log.DebugFormat( |
789 | // "[PERMISSIONS]: group.GroupID = {0}, part.GroupMask = {1}, isGroupMember = {2} for {3}", | 789 | // "[PERMISSIONS]: group.GroupID = {0}, part.GroupMask = {1}, isGroupMember = {2} for {3}", |
790 | // group.GroupID, | 790 | // group.GroupID, |
791 | // m_scene.GetSceneObjectPart(objId).GroupMask, | 791 | // m_scene.GetSceneObjectPart(objId).GroupMask, |
792 | // IsGroupMember(group.GroupID, currentUser, 0), | 792 | // IsGroupMember(group.GroupID, currentUser, 0), |
793 | // currentUser); | 793 | // currentUser); |
794 | 794 | ||
795 | // Group members should be able to edit group objects | 795 | // Group members should be able to edit group objects |
796 | if ((group.GroupID != UUID.Zero) | 796 | if ((group.GroupID != UUID.Zero) |
797 | && ((m_scene.GetSceneObjectPart(objId).GroupMask & (uint)PermissionMask.Modify) != 0) | 797 | && ((m_scene.GetSceneObjectPart(objId).GroupMask & (uint)PermissionMask.Modify) != 0) |
798 | && IsGroupMember(group.GroupID, currentUser, 0)) | 798 | && IsGroupMember(group.GroupID, currentUser, 0)) |
799 | { | 799 | { |
800 | // Return immediately, so that the administrator can shares group objects | 800 | // Return immediately, so that the administrator can shares group objects |
@@ -807,7 +807,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
807 | // Return immediately, so that the administrator can share objects with friends | 807 | // Return immediately, so that the administrator can share objects with friends |
808 | return true; | 808 | return true; |
809 | } | 809 | } |
810 | 810 | ||
811 | // Users should be able to edit what is over their land. | 811 | // Users should be able to edit what is over their land. |
812 | ILandObject parcel = m_scene.LandChannel.GetLandObject(group.AbsolutePosition.X, group.AbsolutePosition.Y); | 812 | ILandObject parcel = m_scene.LandChannel.GetLandObject(group.AbsolutePosition.X, group.AbsolutePosition.Y); |
813 | if ((parcel != null) && (parcel.LandData.OwnerID == currentUser)) | 813 | if ((parcel != null) && (parcel.LandData.OwnerID == currentUser)) |
@@ -904,7 +904,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
904 | 904 | ||
905 | return permission; | 905 | return permission; |
906 | } | 906 | } |
907 | 907 | ||
908 | protected bool GenericParcelOwnerPermission(UUID user, ILandObject parcel, ulong groupPowers, bool allowEstateManager) | 908 | protected bool GenericParcelOwnerPermission(UUID user, ILandObject parcel, ulong groupPowers, bool allowEstateManager) |
909 | { | 909 | { |
910 | if (parcel.LandData.OwnerID == user) | 910 | if (parcel.LandData.OwnerID == user) |
@@ -919,7 +919,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
919 | { | 919 | { |
920 | return true; | 920 | return true; |
921 | } | 921 | } |
922 | 922 | ||
923 | if (allowEstateManager && IsEstateManager(user)) | 923 | if (allowEstateManager && IsEstateManager(user)) |
924 | { | 924 | { |
925 | return true; | 925 | return true; |
@@ -946,7 +946,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
946 | { | 946 | { |
947 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); | 947 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); |
948 | if (m_bypassPermissions) return m_bypassPermissionsValue; | 948 | if (m_bypassPermissions) return m_bypassPermissionsValue; |
949 | 949 | ||
950 | return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandRelease, false); | 950 | return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandRelease, false); |
951 | } | 951 | } |
952 | 952 | ||
@@ -1007,7 +1007,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1007 | //They can't even edit the object | 1007 | //They can't even edit the object |
1008 | return false; | 1008 | return false; |
1009 | } | 1009 | } |
1010 | 1010 | ||
1011 | SceneObjectPart part = scene.GetSceneObjectPart(objectID); | 1011 | SceneObjectPart part = scene.GetSceneObjectPart(objectID); |
1012 | if (part == null) | 1012 | if (part == null) |
1013 | return false; | 1013 | return false; |
@@ -1025,7 +1025,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1025 | if ((part.GroupMask & PERM_COPY) == 0) | 1025 | if ((part.GroupMask & PERM_COPY) == 0) |
1026 | return false; | 1026 | return false; |
1027 | } | 1027 | } |
1028 | 1028 | ||
1029 | //If they can rez, they can duplicate | 1029 | //If they can rez, they can duplicate |
1030 | return CanRezObject(objectCount, owner, objectPosition, scene); | 1030 | return CanRezObject(objectCount, owner, objectPosition, scene); |
1031 | } | 1031 | } |
@@ -1074,10 +1074,10 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1074 | { | 1074 | { |
1075 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); | 1075 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); |
1076 | if (m_bypassPermissions) return m_bypassPermissionsValue; | 1076 | if (m_bypassPermissions) return m_bypassPermissionsValue; |
1077 | 1077 | ||
1078 | if (m_allowedScriptEditors == UserSet.Administrators && !IsAdministrator(user)) | 1078 | if (m_allowedScriptEditors == UserSet.Administrators && !IsAdministrator(user)) |
1079 | return false; | 1079 | return false; |
1080 | 1080 | ||
1081 | // Ordinarily, if you can view it, you can edit it | 1081 | // Ordinarily, if you can view it, you can edit it |
1082 | // There is no viewing a no mod script | 1082 | // There is no viewing a no mod script |
1083 | // | 1083 | // |
@@ -1135,10 +1135,10 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1135 | 1135 | ||
1136 | if (!IsGroupMember(part.GroupID, user, 0)) | 1136 | if (!IsGroupMember(part.GroupID, user, 0)) |
1137 | return false; | 1137 | return false; |
1138 | 1138 | ||
1139 | if ((part.GroupMask & (uint)PermissionMask.Modify) == 0) | 1139 | if ((part.GroupMask & (uint)PermissionMask.Modify) == 0) |
1140 | return false; | 1140 | return false; |
1141 | } | 1141 | } |
1142 | else | 1142 | else |
1143 | { | 1143 | { |
1144 | if ((part.OwnerMask & (uint)PermissionMask.Modify) == 0) | 1144 | if ((part.OwnerMask & (uint)PermissionMask.Modify) == 0) |
@@ -1572,7 +1572,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1572 | if ((so.GetEffectivePermissions() & PERM_COPY) != PERM_COPY) | 1572 | if ((so.GetEffectivePermissions() & PERM_COPY) != PERM_COPY) |
1573 | permission = false; | 1573 | permission = false; |
1574 | } | 1574 | } |
1575 | 1575 | ||
1576 | return permission; | 1576 | return permission; |
1577 | } | 1577 | } |
1578 | 1578 | ||
@@ -1662,7 +1662,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1662 | 1662 | ||
1663 | if (part == null) | 1663 | if (part == null) |
1664 | return false; | 1664 | return false; |
1665 | 1665 | ||
1666 | if (part.OwnerID != user) | 1666 | if (part.OwnerID != user) |
1667 | { | 1667 | { |
1668 | if (part.GroupID == UUID.Zero) | 1668 | if (part.GroupID == UUID.Zero) |
@@ -1670,11 +1670,11 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1670 | 1670 | ||
1671 | if (!IsGroupMember(part.GroupID, user, 0)) | 1671 | if (!IsGroupMember(part.GroupID, user, 0)) |
1672 | return false; | 1672 | return false; |
1673 | 1673 | ||
1674 | if ((part.GroupMask & (uint)PermissionMask.Modify) == 0) | 1674 | if ((part.GroupMask & (uint)PermissionMask.Modify) == 0) |
1675 | return false; | 1675 | return false; |
1676 | } | 1676 | } |
1677 | else | 1677 | else |
1678 | { | 1678 | { |
1679 | if ((part.OwnerMask & (uint)PermissionMask.Modify) == 0) | 1679 | if ((part.OwnerMask & (uint)PermissionMask.Modify) == 0) |
1680 | return false; | 1680 | return false; |
@@ -1684,12 +1684,12 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1684 | 1684 | ||
1685 | if (ti == null) | 1685 | if (ti == null) |
1686 | return false; | 1686 | return false; |
1687 | 1687 | ||
1688 | if (ti.OwnerID != user) | 1688 | if (ti.OwnerID != user) |
1689 | { | 1689 | { |
1690 | if (ti.GroupID == UUID.Zero) | 1690 | if (ti.GroupID == UUID.Zero) |
1691 | return false; | 1691 | return false; |
1692 | 1692 | ||
1693 | if (!IsGroupMember(ti.GroupID, user, 0)) | 1693 | if (!IsGroupMember(ti.GroupID, user, 0)) |
1694 | return false; | 1694 | return false; |
1695 | } | 1695 | } |
@@ -1746,12 +1746,12 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1746 | 1746 | ||
1747 | if (part == null) | 1747 | if (part == null) |
1748 | return false; | 1748 | return false; |
1749 | 1749 | ||
1750 | if (part.OwnerID != user) | 1750 | if (part.OwnerID != user) |
1751 | { | 1751 | { |
1752 | if (part.GroupID == UUID.Zero) | 1752 | if (part.GroupID == UUID.Zero) |
1753 | return false; | 1753 | return false; |
1754 | 1754 | ||
1755 | if (!IsGroupMember(part.GroupID, user, 0)) | 1755 | if (!IsGroupMember(part.GroupID, user, 0)) |
1756 | return false; | 1756 | return false; |
1757 | } | 1757 | } |
@@ -1768,7 +1768,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1768 | { | 1768 | { |
1769 | if (ti.GroupID == UUID.Zero) | 1769 | if (ti.GroupID == UUID.Zero) |
1770 | return false; | 1770 | return false; |
1771 | 1771 | ||
1772 | if (!IsGroupMember(ti.GroupID, user, 0)) | 1772 | if (!IsGroupMember(ti.GroupID, user, 0)) |
1773 | return false; | 1773 | return false; |
1774 | } | 1774 | } |
@@ -1863,7 +1863,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1863 | 1863 | ||
1864 | return true; | 1864 | return true; |
1865 | } | 1865 | } |
1866 | 1866 | ||
1867 | /// <summary> | 1867 | /// <summary> |
1868 | /// Check whether the specified user is allowed to create the given inventory type in their inventory. | 1868 | /// Check whether the specified user is allowed to create the given inventory type in their inventory. |
1869 | /// </summary> | 1869 | /// </summary> |
@@ -1878,10 +1878,10 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1878 | if ((int)InventoryType.LSL == invType) | 1878 | if ((int)InventoryType.LSL == invType) |
1879 | if (m_allowedScriptCreators == UserSet.Administrators && !IsAdministrator(userID)) | 1879 | if (m_allowedScriptCreators == UserSet.Administrators && !IsAdministrator(userID)) |
1880 | return false; | 1880 | return false; |
1881 | 1881 | ||
1882 | return true; | 1882 | return true; |
1883 | } | 1883 | } |
1884 | 1884 | ||
1885 | /// <summary> | 1885 | /// <summary> |
1886 | /// Check whether the specified user is allowed to copy the given inventory type in their inventory. | 1886 | /// Check whether the specified user is allowed to copy the given inventory type in their inventory. |
1887 | /// </summary> | 1887 | /// </summary> |
@@ -1895,7 +1895,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1895 | 1895 | ||
1896 | return true; | 1896 | return true; |
1897 | } | 1897 | } |
1898 | 1898 | ||
1899 | /// <summary> | 1899 | /// <summary> |
1900 | /// Check whether the specified user is allowed to edit the given inventory item within their own inventory. | 1900 | /// Check whether the specified user is allowed to edit the given inventory item within their own inventory. |
1901 | /// </summary> | 1901 | /// </summary> |
@@ -1909,7 +1909,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1909 | 1909 | ||
1910 | return true; | 1910 | return true; |
1911 | } | 1911 | } |
1912 | 1912 | ||
1913 | /// <summary> | 1913 | /// <summary> |
1914 | /// Check whether the specified user is allowed to delete the given inventory item from their own inventory. | 1914 | /// Check whether the specified user is allowed to delete the given inventory item from their own inventory. |
1915 | /// </summary> | 1915 | /// </summary> |
@@ -1947,7 +1947,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1947 | return GenericObjectPermission(agentID, prim, false); | 1947 | return GenericObjectPermission(agentID, prim, false); |
1948 | } | 1948 | } |
1949 | 1949 | ||
1950 | private bool CanCompileScript(UUID ownerUUID, int scriptType, Scene scene) | 1950 | private bool CanCompileScript(UUID ownerUUID, int scriptType, Scene scene) |
1951 | { | 1951 | { |
1952 | //m_log.DebugFormat("check if {0} is allowed to compile {1}", ownerUUID, scriptType); | 1952 | //m_log.DebugFormat("check if {0} is allowed to compile {1}", ownerUUID, scriptType); |
1953 | switch (scriptType) { | 1953 | switch (scriptType) { |
@@ -1981,64 +1981,64 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1981 | } | 1981 | } |
1982 | return(false); | 1982 | return(false); |
1983 | } | 1983 | } |
1984 | 1984 | ||
1985 | private bool CanControlPrimMedia(UUID agentID, UUID primID, int face) | 1985 | private bool CanControlPrimMedia(UUID agentID, UUID primID, int face) |
1986 | { | 1986 | { |
1987 | // m_log.DebugFormat( | 1987 | // m_log.DebugFormat( |
1988 | // "[PERMISSONS]: Performing CanControlPrimMedia check with agentID {0}, primID {1}, face {2}", | 1988 | // "[PERMISSONS]: Performing CanControlPrimMedia check with agentID {0}, primID {1}, face {2}", |
1989 | // agentID, primID, face); | 1989 | // agentID, primID, face); |
1990 | 1990 | ||
1991 | if (null == MoapModule) | 1991 | if (null == MoapModule) |
1992 | return false; | 1992 | return false; |
1993 | 1993 | ||
1994 | SceneObjectPart part = m_scene.GetSceneObjectPart(primID); | 1994 | SceneObjectPart part = m_scene.GetSceneObjectPart(primID); |
1995 | if (null == part) | 1995 | if (null == part) |
1996 | return false; | 1996 | return false; |
1997 | 1997 | ||
1998 | MediaEntry me = MoapModule.GetMediaEntry(part, face); | 1998 | MediaEntry me = MoapModule.GetMediaEntry(part, face); |
1999 | 1999 | ||
2000 | // If there is no existing media entry then it can be controlled (in this context, created). | 2000 | // If there is no existing media entry then it can be controlled (in this context, created). |
2001 | if (null == me) | 2001 | if (null == me) |
2002 | return true; | 2002 | return true; |
2003 | 2003 | ||
2004 | // m_log.DebugFormat( | 2004 | // m_log.DebugFormat( |
2005 | // "[PERMISSIONS]: Checking CanControlPrimMedia for {0} on {1} face {2} with control permissions {3}", | 2005 | // "[PERMISSIONS]: Checking CanControlPrimMedia for {0} on {1} face {2} with control permissions {3}", |
2006 | // agentID, primID, face, me.ControlPermissions); | 2006 | // agentID, primID, face, me.ControlPermissions); |
2007 | 2007 | ||
2008 | return GenericObjectPermission(agentID, part.ParentGroup.UUID, true); | 2008 | return GenericObjectPermission(agentID, part.ParentGroup.UUID, true); |
2009 | } | 2009 | } |
2010 | 2010 | ||
2011 | private bool CanInteractWithPrimMedia(UUID agentID, UUID primID, int face) | 2011 | private bool CanInteractWithPrimMedia(UUID agentID, UUID primID, int face) |
2012 | { | 2012 | { |
2013 | // m_log.DebugFormat( | 2013 | // m_log.DebugFormat( |
2014 | // "[PERMISSONS]: Performing CanInteractWithPrimMedia check with agentID {0}, primID {1}, face {2}", | 2014 | // "[PERMISSONS]: Performing CanInteractWithPrimMedia check with agentID {0}, primID {1}, face {2}", |
2015 | // agentID, primID, face); | 2015 | // agentID, primID, face); |
2016 | 2016 | ||
2017 | if (null == MoapModule) | 2017 | if (null == MoapModule) |
2018 | return false; | 2018 | return false; |
2019 | 2019 | ||
2020 | SceneObjectPart part = m_scene.GetSceneObjectPart(primID); | 2020 | SceneObjectPart part = m_scene.GetSceneObjectPart(primID); |
2021 | if (null == part) | 2021 | if (null == part) |
2022 | return false; | 2022 | return false; |
2023 | 2023 | ||
2024 | MediaEntry me = MoapModule.GetMediaEntry(part, face); | 2024 | MediaEntry me = MoapModule.GetMediaEntry(part, face); |
2025 | 2025 | ||
2026 | // If there is no existing media entry then it can be controlled (in this context, created). | 2026 | // If there is no existing media entry then it can be controlled (in this context, created). |
2027 | if (null == me) | 2027 | if (null == me) |
2028 | return true; | 2028 | return true; |
2029 | 2029 | ||
2030 | // m_log.DebugFormat( | 2030 | // m_log.DebugFormat( |
2031 | // "[PERMISSIONS]: Checking CanInteractWithPrimMedia for {0} on {1} face {2} with interact permissions {3}", | 2031 | // "[PERMISSIONS]: Checking CanInteractWithPrimMedia for {0} on {1} face {2} with interact permissions {3}", |
2032 | // agentID, primID, face, me.InteractPermissions); | 2032 | // agentID, primID, face, me.InteractPermissions); |
2033 | 2033 | ||
2034 | return GenericPrimMediaPermission(part, agentID, me.InteractPermissions); | 2034 | return GenericPrimMediaPermission(part, agentID, me.InteractPermissions); |
2035 | } | 2035 | } |
2036 | 2036 | ||
2037 | private bool GenericPrimMediaPermission(SceneObjectPart part, UUID agentID, MediaPermission perms) | 2037 | private bool GenericPrimMediaPermission(SceneObjectPart part, UUID agentID, MediaPermission perms) |
2038 | { | 2038 | { |
2039 | // if (IsAdministrator(agentID)) | 2039 | // if (IsAdministrator(agentID)) |
2040 | // return true; | 2040 | // return true; |
2041 | 2041 | ||
2042 | if ((perms & MediaPermission.Anyone) == MediaPermission.Anyone) | 2042 | if ((perms & MediaPermission.Anyone) == MediaPermission.Anyone) |
2043 | return true; | 2043 | return true; |
2044 | 2044 | ||
@@ -2047,13 +2047,13 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
2047 | if (agentID == part.OwnerID) | 2047 | if (agentID == part.OwnerID) |
2048 | return true; | 2048 | return true; |
2049 | } | 2049 | } |
2050 | 2050 | ||
2051 | if ((perms & MediaPermission.Group) == MediaPermission.Group) | 2051 | if ((perms & MediaPermission.Group) == MediaPermission.Group) |
2052 | { | 2052 | { |
2053 | if (IsGroupMember(part.GroupID, agentID, 0)) | 2053 | if (IsGroupMember(part.GroupID, agentID, 0)) |
2054 | return true; | 2054 | return true; |
2055 | } | 2055 | } |
2056 | 2056 | ||
2057 | return false; | 2057 | return false; |
2058 | } | 2058 | } |
2059 | } | 2059 | } |