Persist script permission mask and granter
parent
9af9f648ef
commit
d7a19adcac
|
@ -83,6 +83,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
|
||||||
private int m_ControlEventsInQueue = 0;
|
private int m_ControlEventsInQueue = 0;
|
||||||
private int m_LastControlLevel = 0;
|
private int m_LastControlLevel = 0;
|
||||||
private bool m_CollisionInQueue = false;
|
private bool m_CollisionInQueue = false;
|
||||||
|
private TaskInventoryItem m_thisScriptTask;
|
||||||
|
|
||||||
//private ISponsor m_ScriptSponsor;
|
//private ISponsor m_ScriptSponsor;
|
||||||
private Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>>
|
private Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>>
|
||||||
m_LineMap;
|
m_LineMap;
|
||||||
|
@ -177,6 +179,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
|
||||||
set { m_StartParam = value; }
|
set { m_StartParam = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TaskInventoryItem ScriptTask
|
||||||
|
{
|
||||||
|
get { return m_thisScriptTask; }
|
||||||
|
}
|
||||||
|
|
||||||
public ScriptInstance(IScriptEngine engine, SceneObjectPart part,
|
public ScriptInstance(IScriptEngine engine, SceneObjectPart part,
|
||||||
UUID itemID, UUID assetID, string assembly,
|
UUID itemID, UUID assetID, string assembly,
|
||||||
AppDomain dom, string primName, string scriptName,
|
AppDomain dom, string primName, string scriptName,
|
||||||
|
@ -195,6 +202,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
|
||||||
m_StartParam = startParam;
|
m_StartParam = startParam;
|
||||||
m_MaxScriptQueue = maxScriptQueue;
|
m_MaxScriptQueue = maxScriptQueue;
|
||||||
|
|
||||||
|
if (part != null && part.TaskInventory.ContainsKey(m_ItemID))
|
||||||
|
{
|
||||||
|
m_thisScriptTask = part.TaskInventory[m_ItemID];
|
||||||
|
}
|
||||||
|
|
||||||
ApiManager am = new ApiManager();
|
ApiManager am = new ApiManager();
|
||||||
|
|
||||||
foreach (string api in am.GetApis())
|
foreach (string api in am.GetApis())
|
||||||
|
|
|
@ -179,6 +179,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
|
||||||
|
|
||||||
rootElement.AppendChild(plugins);
|
rootElement.AppendChild(plugins);
|
||||||
|
|
||||||
|
if (instance.ScriptTask != null)
|
||||||
|
{
|
||||||
|
if (instance.ScriptTask.PermsMask != 0 && instance.ScriptTask.PermsGranter != UUID.Zero)
|
||||||
|
{
|
||||||
|
XmlNode permissions = xmldoc.CreateElement("", "Permissions", "");
|
||||||
|
XmlAttribute granter = xmldoc.CreateAttribute("", "granter", "");
|
||||||
|
granter.Value = instance.ScriptTask.PermsGranter.ToString();
|
||||||
|
permissions.Attributes.Append(granter);
|
||||||
|
XmlAttribute mask = xmldoc.CreateAttribute("", "mask", "");
|
||||||
|
mask.Value = instance.ScriptTask.PermsMask.ToString();
|
||||||
|
permissions.Attributes.Append(mask);
|
||||||
|
rootElement.AppendChild(permissions);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return xmldoc.InnerXml;
|
return xmldoc.InnerXml;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -342,6 +357,29 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
|
||||||
case "Plugins":
|
case "Plugins":
|
||||||
instance.PluginData = ReadList(part).Data;
|
instance.PluginData = ReadList(part).Data;
|
||||||
break;
|
break;
|
||||||
|
case "Permissions":
|
||||||
|
string tmpPerm;
|
||||||
|
int mask = 0;
|
||||||
|
tmpPerm = part.Attributes.GetNamedItem("mask").Value;
|
||||||
|
if (tmpPerm != null)
|
||||||
|
{
|
||||||
|
int.TryParse(tmpPerm, out mask);
|
||||||
|
if (mask != 0)
|
||||||
|
{
|
||||||
|
tmpPerm = part.Attributes.GetNamedItem("granter").Value;
|
||||||
|
if (tmpPerm != null)
|
||||||
|
{
|
||||||
|
UUID granter = new UUID();
|
||||||
|
UUID.TryParse(tmpPerm, out granter);
|
||||||
|
if (granter != UUID.Zero)
|
||||||
|
{
|
||||||
|
instance.ScriptTask.PermsMask = mask;
|
||||||
|
instance.ScriptTask.PermsGranter = granter;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue