add more calls to effective permissions aggregation; do not change groupmask on deed
parent
a5c693e302
commit
1113407280
|
@ -1180,6 +1180,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
|||
part.NextOwnerMask = item.NextPermissions & part.BaseMask;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -1198,6 +1199,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
|||
}
|
||||
|
||||
rootPart.TrimPermissions();
|
||||
so.AggregateDeepPerms();
|
||||
|
||||
if (isAttachment)
|
||||
so.FromItemID = item.ID;
|
||||
|
|
|
@ -2754,9 +2754,16 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
continue;
|
||||
|
||||
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.AggregatePerms();
|
||||
|
||||
sog.ScheduleGroupForFullUpdate();
|
||||
|
||||
|
|
|
@ -2764,7 +2764,10 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
{
|
||||
// Apply Next Owner Permissions if we're not bypassing permissions
|
||||
if (!m_scene.Permissions.BypassPermissions())
|
||||
{
|
||||
ApplyNextOwnerPermissions();
|
||||
AggregatePerms();
|
||||
}
|
||||
}
|
||||
|
||||
rpart.ScheduleFullUpdate();
|
||||
|
|
|
@ -980,6 +980,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
}
|
||||
// old code end
|
||||
rootPart.TrimPermissions();
|
||||
group.AggregateDeepPerms();
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
Loading…
Reference in New Issue