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.
prebuild-update
Melanie Thielker 2010-07-20 14:45:46 +02:00 committed by Melanie
parent ea51bea508
commit 120d7014fd
1 changed files with 7 additions and 4 deletions

View File

@ -1364,6 +1364,9 @@ namespace OpenSim.Region.Framework.Scenes
remoteClient.SendAgentAlertMessage("Item saved", false); remoteClient.SendAgentAlertMessage("Item saved", false);
} }
// Base ALWAYS has move
currentItem.BasePermissions |= (uint)PermissionMask.Move;
// Check if we're allowed to mess with permissions // Check if we're allowed to mess with permissions
if (!Permissions.IsGod(remoteClient.AgentId)) // Not a god if (!Permissions.IsGod(remoteClient.AgentId)) // Not a god
{ {
@ -1380,18 +1383,18 @@ namespace OpenSim.Region.Framework.Scenes
{ {
// Owner can't change base, and can change other // Owner can't change base, and can change other
// only up to base // only up to base
// Base ALWAYS has move
currentItem.BasePermissions |= (uint)PermissionMask.Move;
itemInfo.BasePermissions = currentItem.BasePermissions; itemInfo.BasePermissions = currentItem.BasePermissions;
itemInfo.EveryonePermissions &= currentItem.BasePermissions; itemInfo.EveryonePermissions &= currentItem.BasePermissions;
itemInfo.GroupPermissions &= currentItem.BasePermissions; itemInfo.GroupPermissions &= currentItem.BasePermissions;
itemInfo.CurrentPermissions &= currentItem.BasePermissions; itemInfo.CurrentPermissions &= currentItem.BasePermissions;
itemInfo.NextPermissions &= currentItem.BasePermissions; itemInfo.NextPermissions &= currentItem.BasePermissions;
// Next ALWAYS has move
itemInfo.NextPermissions |= (uint)PermissionMask.Move;
} }
} }
// Next ALWAYS has move
itemInfo.NextPermissions |= (uint)PermissionMask.Move;
if (part.Inventory.UpdateInventoryItem(itemInfo)) if (part.Inventory.UpdateInventoryItem(itemInfo))
{ {
part.GetProperties(remoteClient); part.GetProperties(remoteClient);