diff options
author | Melanie Thielker | 2010-07-20 14:45:46 +0200 |
---|---|---|
committer | Melanie Thielker | 2010-07-20 14:45:46 +0200 |
commit | fd66ee57f3b091e6e4b6c619645595b300c94fbb (patch) | |
tree | 8f8fb6f3537e495401f3a9fa6d8a02c401c8453f /OpenSim/Region/Framework/Scenes | |
parent | Remove the null checks altogether (diff) | |
download | opensim-SC-fd66ee57f3b091e6e4b6c619645595b300c94fbb.zip opensim-SC-fd66ee57f3b091e6e4b6c619645595b300c94fbb.tar.gz opensim-SC-fd66ee57f3b091e6e4b6c619645595b300c94fbb.tar.bz2 opensim-SC-fd66ee57f3b091e6e4b6c619645595b300c94fbb.tar.xz |
When a god uses mass permission setting, the V bit is cleared from next
perms, rendering the item unmoveable for the next owenr. Make god mods
conform to the rules, too.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index 989ec37..59731f7 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -1383,6 +1383,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
1383 | remoteClient.SendAgentAlertMessage("Item saved", false); | 1383 | remoteClient.SendAgentAlertMessage("Item saved", false); |
1384 | } | 1384 | } |
1385 | 1385 | ||
1386 | // Base ALWAYS has move | ||
1387 | currentItem.BasePermissions |= (uint)PermissionMask.Move; | ||
1388 | |||
1386 | // Check if we're allowed to mess with permissions | 1389 | // Check if we're allowed to mess with permissions |
1387 | if (!Permissions.IsGod(remoteClient.AgentId)) // Not a god | 1390 | if (!Permissions.IsGod(remoteClient.AgentId)) // Not a god |
1388 | { | 1391 | { |
@@ -1399,18 +1402,18 @@ namespace OpenSim.Region.Framework.Scenes | |||
1399 | { | 1402 | { |
1400 | // Owner can't change base, and can change other | 1403 | // Owner can't change base, and can change other |
1401 | // only up to base | 1404 | // only up to base |
1402 | // Base ALWAYS has move | ||
1403 | currentItem.BasePermissions |= (uint)PermissionMask.Move; | ||
1404 | itemInfo.BasePermissions = currentItem.BasePermissions; | 1405 | itemInfo.BasePermissions = currentItem.BasePermissions; |
1405 | itemInfo.EveryonePermissions &= currentItem.BasePermissions; | 1406 | itemInfo.EveryonePermissions &= currentItem.BasePermissions; |
1406 | itemInfo.GroupPermissions &= currentItem.BasePermissions; | 1407 | itemInfo.GroupPermissions &= currentItem.BasePermissions; |
1407 | itemInfo.CurrentPermissions &= currentItem.BasePermissions; | 1408 | itemInfo.CurrentPermissions &= currentItem.BasePermissions; |
1408 | itemInfo.NextPermissions &= currentItem.BasePermissions; | 1409 | itemInfo.NextPermissions &= currentItem.BasePermissions; |
1409 | // Next ALWAYS has move | ||
1410 | itemInfo.NextPermissions |= (uint)PermissionMask.Move; | ||
1411 | } | 1410 | } |
1412 | 1411 | ||
1413 | } | 1412 | } |
1413 | |||
1414 | // Next ALWAYS has move | ||
1415 | itemInfo.NextPermissions |= (uint)PermissionMask.Move; | ||
1416 | |||
1414 | if (part.Inventory.UpdateInventoryItem(itemInfo)) | 1417 | if (part.Inventory.UpdateInventoryItem(itemInfo)) |
1415 | { | 1418 | { |
1416 | part.GetProperties(remoteClient); | 1419 | part.GetProperties(remoteClient); |