public bool Read(XmlNode perm)
{
try
{
// get the corresponding directory
Dir = perm.SelectSingleNode("./@Dir").ChildNodes[0].Value;
// get the options that are supported
OptionFileRead = (perm.SelectSingleNode("./Option[@Name='FileRead']").ChildNodes[0].Value == "1");
OptionFileWrite = (perm.SelectSingleNode("./Option[@Name='FileWrite']").ChildNodes[0].Value == "1");
OptionFileDelete = (perm.SelectSingleNode("./Option[@Name='FileDelete']").ChildNodes[0].Value == "1");
OptionFileAppend = (perm.SelectSingleNode("./Option[@Name='FileAppend']").ChildNodes[0].Value == "1");
OptionDirCreate = (perm.SelectSingleNode("./Option[@Name='DirCreate']").ChildNodes[0].Value == "1");
OptionDirDelete = (perm.SelectSingleNode("./Option[@Name='DirDelete']").ChildNodes[0].Value == "1");
OptionDirList = (perm.SelectSingleNode("./Option[@Name='DirList']").ChildNodes[0].Value == "1");
OptionDirSubdirs = (perm.SelectSingleNode("./Option[@Name='DirSubdirs']").ChildNodes[0].Value == "1");
OptionIsHome = (perm.SelectSingleNode("./Option[@Name='IsHome']").ChildNodes[0].Value == "1");
OptionAutoCreate = (perm.SelectSingleNode("./Option[@Name='AutoCreate']").ChildNodes[0].Value == "1");
// read in any defined aliases
Aliases.Clear();
XmlNode aliasesNode = perm.SelectSingleNode("./Aliases");
if (aliasesNode != null)
{
XmlNodeList aliases = aliasesNode.SelectNodes("./Alias");
// walk the collection of accessible folders
foreach (XmlNode alias in aliases)
{
Aliases.Add(alias.ChildNodes[0].Value);
}
}
}
catch (Exception)
{
return false;
}
return true;
}