Fixed: the parcel flag "Allow Scripts from Group" should only check if the parcel has a Group set; it doesn't have to be *deeded* to the group
Also some cleanup of the use of Group ID's (with no change to functionality).0.8.0.3
parent
63fd027494
commit
a780e01a54
|
@ -633,12 +633,19 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||||
|
|
||||||
// Validate User and Group UUID's
|
// Validate User and Group UUID's
|
||||||
|
|
||||||
|
if (!ResolveGroupUuid(parcel.GroupID))
|
||||||
|
parcel.GroupID = UUID.Zero;
|
||||||
|
|
||||||
if (parcel.IsGroupOwned)
|
if (parcel.IsGroupOwned)
|
||||||
{
|
{
|
||||||
if (!ResolveGroupUuid(parcel.GroupID))
|
if (parcel.GroupID != UUID.Zero)
|
||||||
|
{
|
||||||
|
// In group-owned parcels, OwnerID=GroupID. This should already be the case, but let's make sure.
|
||||||
|
parcel.OwnerID = parcel.GroupID;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
parcel.OwnerID = m_rootScene.RegionInfo.EstateSettings.EstateOwner;
|
parcel.OwnerID = m_rootScene.RegionInfo.EstateSettings.EstateOwner;
|
||||||
parcel.GroupID = UUID.Zero;
|
|
||||||
parcel.IsGroupOwned = false;
|
parcel.IsGroupOwned = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -646,9 +653,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||||
{
|
{
|
||||||
if (!ResolveUserUuid(scene, parcel.OwnerID))
|
if (!ResolveUserUuid(scene, parcel.OwnerID))
|
||||||
parcel.OwnerID = m_rootScene.RegionInfo.EstateSettings.EstateOwner;
|
parcel.OwnerID = m_rootScene.RegionInfo.EstateSettings.EstateOwner;
|
||||||
|
|
||||||
if (!ResolveGroupUuid(parcel.GroupID))
|
|
||||||
parcel.GroupID = UUID.Zero;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
List<LandAccessEntry> accessList = new List<LandAccessEntry>();
|
List<LandAccessEntry> accessList = new List<LandAccessEntry>();
|
||||||
|
|
|
@ -1543,8 +1543,7 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
|
|
||||||
private void IncomingLandObjectFromStorage(LandData data)
|
private void IncomingLandObjectFromStorage(LandData data)
|
||||||
{
|
{
|
||||||
ILandObject new_land = new LandObject(data.OwnerID, data.IsGroupOwned, m_scene);
|
ILandObject new_land = new LandObject(data, m_scene);
|
||||||
new_land.LandData = data.Copy();
|
|
||||||
new_land.SetLandBitmapFromByteArray();
|
new_land.SetLandBitmapFromByteArray();
|
||||||
AddLandObject(new_land);
|
AddLandObject(new_land);
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,6 +120,12 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
|
|
||||||
#region Constructors
|
#region Constructors
|
||||||
|
|
||||||
|
public LandObject(LandData landData, Scene scene)
|
||||||
|
{
|
||||||
|
LandData = landData.Copy();
|
||||||
|
m_scene = scene;
|
||||||
|
}
|
||||||
|
|
||||||
public LandObject(UUID owner_id, bool is_group_owned, Scene scene)
|
public LandObject(UUID owner_id, bool is_group_owned, Scene scene)
|
||||||
{
|
{
|
||||||
m_scene = scene;
|
m_scene = scene;
|
||||||
|
@ -163,12 +169,8 @@ namespace OpenSim.Region.CoreModules.World.Land
|
||||||
|
|
||||||
public ILandObject Copy()
|
public ILandObject Copy()
|
||||||
{
|
{
|
||||||
ILandObject newLand = new LandObject(LandData.OwnerID, LandData.IsGroupOwned, m_scene);
|
ILandObject newLand = new LandObject(LandData, m_scene);
|
||||||
|
|
||||||
//Place all new variables here!
|
|
||||||
newLand.LandBitmap = (bool[,]) (LandBitmap.Clone());
|
newLand.LandBitmap = (bool[,]) (LandBitmap.Clone());
|
||||||
newLand.LandData = LandData.Copy();
|
|
||||||
|
|
||||||
return newLand;
|
return newLand;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4516,29 +4516,18 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else if ((parcel.LandData.Flags & (uint)ParcelFlags.AllowGroupScripts) != 0)
|
else if ((part.OwnerID == parcel.LandData.OwnerID) || Permissions.IsGod(part.OwnerID))
|
||||||
{
|
{
|
||||||
if (part.OwnerID == parcel.LandData.OwnerID
|
return true;
|
||||||
|| (parcel.LandData.IsGroupOwned && part.GroupID == parcel.LandData.GroupID)
|
}
|
||||||
|| Permissions.IsGod(part.OwnerID))
|
else if (((parcel.LandData.Flags & (uint)ParcelFlags.AllowGroupScripts) != 0)
|
||||||
{
|
&& (parcel.LandData.GroupID != UUID.Zero) && (parcel.LandData.GroupID == part.GroupID))
|
||||||
return true;
|
{
|
||||||
}
|
return true;
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (part.OwnerID == parcel.LandData.OwnerID)
|
return false;
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue