add more calls to effective permissions aggregation; do not change groupmask on deed

httptests
UbitUmarov 2017-01-17 01:22:44 +00:00
parent a5c693e302
commit 1113407280
4 changed files with 15 additions and 2 deletions

View File

@ -1180,6 +1180,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
part.NextOwnerMask = item.NextPermissions & part.BaseMask; part.NextOwnerMask = item.NextPermissions & part.BaseMask;
} }
} }
} }
} }
else else
@ -1198,6 +1199,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
} }
rootPart.TrimPermissions(); rootPart.TrimPermissions();
so.AggregateDeepPerms();
if (isAttachment) if (isAttachment)
so.FromItemID = item.ID; so.FromItemID = item.ID;

View File

@ -2754,9 +2754,16 @@ namespace OpenSim.Region.Framework.Scenes
continue; continue;
sog.SetOwnerId(groupID); sog.SetOwnerId(groupID);
// Make the group mask be the previous owner mask
sog.RootPart.GroupMask = sog.RootPart.OwnerMask; // this is wrong, GroupMask is used for group sharing, still possible to set
// this whould give owner rights to users that are member of group but don't have role powers to edit
// sog.RootPart.GroupMask = sog.RootPart.OwnerMask;
// we should keep all permissions on deed to group
// and with this comented code, if user does not set next permissions on the object
// and on ALL contents of ALL prims, he may loose rights, making the object useless
sog.ApplyNextOwnerPermissions(); sog.ApplyNextOwnerPermissions();
sog.AggregatePerms();
sog.ScheduleGroupForFullUpdate(); sog.ScheduleGroupForFullUpdate();

View File

@ -2764,7 +2764,10 @@ namespace OpenSim.Region.Framework.Scenes
{ {
// Apply Next Owner Permissions if we're not bypassing permissions // Apply Next Owner Permissions if we're not bypassing permissions
if (!m_scene.Permissions.BypassPermissions()) if (!m_scene.Permissions.BypassPermissions())
{
ApplyNextOwnerPermissions(); ApplyNextOwnerPermissions();
AggregatePerms();
}
} }
rpart.ScheduleFullUpdate(); rpart.ScheduleFullUpdate();

View File

@ -980,6 +980,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
// old code end // old code end
rootPart.TrimPermissions(); rootPart.TrimPermissions();
group.AggregateDeepPerms();
} }
return true; return true;