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.
avinationmerge
Melanie Thielker 2010-07-20 14:45:46 +02:00
parent 191bee2ed0
commit fd66ee57f3
1 changed files with 7 additions and 4 deletions

View File

@ -1383,6 +1383,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
{ {
@ -1399,18 +1402,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);