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.
0.7-release
Melanie Thielker 2010-07-20 14:45:46 +02:00 committed by Diva Canto
parent 2eadd984ab
commit 3d82e79d1c
1 changed files with 7 additions and 4 deletions

View File

@ -1363,6 +1363,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
{ {
@ -1379,18 +1382,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);