private static Zecurity.Group PopulateGroupFromXmlNode(XmlNode group) { Zecurity.Group res = new Zecurity.Group(); res.ID = new Guid(group.Attributes["ID"].Value); res.Name = group.Attributes["Name"].Value; XmlNodeList permissions = group.SelectNodes("Permissions/Permission"); if (permissions.Count > 0) { res.Permissions = new List <Zecurity.Permission>(); foreach (XmlNode permission in permissions) { res.Permissions.Add(PopulatePermissionFromXmlNode(permission)); } } XmlNodeList users = group.SelectNodes("Users/User"); if (users.Count > 0) { res.Users = new List <Zecurity.User>(); foreach (XmlNode user in users) { res.Users.Add(PopulateUserFromXmlNode(user)); } } return(res); }
public static Zecurity.Group GetGroupByID(Guid id) { Zecurity.Group res = null; XmlDocument xmlDoc = GetSecurityConfig(); XmlNodeList nodeList = xmlDoc.SelectNodes("/Security/Groups/Group[@ID='" + id.ToString() + "']"); if (nodeList.Count == 1) { res = PopulateGroupFromXmlNode(nodeList[0]); } return(res); }
public static bool AddGroup(Zecurity.Group group) { bool res = false; XmlDocument xmlDoc = GetSecurityConfig(); XmlNodeList nodeList = xmlDoc.SelectNodes("/Security/Groups/Group[@Name='" + group.Name + "']"); if (nodeList.Count == 0) { //Group Attributes XmlElement xmlNewGroup = xmlDoc.CreateElement("Group"); AddAttribute("ID", group.ID.ToString(), xmlNewGroup); AddAttribute("Name", group.Name, xmlNewGroup); //Adding Permissions if (group.Permissions.Count > 0) { XmlElement xmlPermissions = xmlDoc.CreateElement("Permissions"); foreach (Zecurity.Permission permission in group.Permissions) { XmlElement xmlPermission = xmlDoc.CreateElement("Permission"); AddAttribute("ID", permission.ID.ToString(), xmlPermission); AddAttribute("Path", permission.Path, xmlPermission); AddAttribute("Add", permission.Add.ToString(), xmlPermission); AddAttribute("Edit", permission.Edit.ToString(), xmlPermission); AddAttribute("Delete", permission.Delete.ToString(), xmlPermission); AddAttribute("Trusted", permission.Trusted.ToString(), xmlPermission); AddAttribute("Name", permission.Name, xmlPermission); xmlPermissions.AppendChild(xmlPermission); } xmlNewGroup.AppendChild(xmlPermissions); } //Preparing for Users XmlElement xmlUsers = xmlDoc.CreateElement("Users"); xmlNewGroup.AppendChild(xmlUsers); XmlNode commonParent = xmlDoc.SelectSingleNode("/Security/Groups"); commonParent.AppendChild(xmlNewGroup); xmlDoc.Save(DCServer.MapPath("~") + DCSiteUrls.GetPath_ZecurityConfigurationPath()); res = true; } return(res); }
public static bool UpdateGroup(Zecurity.Group group) { bool res = false; try { XmlDocument xmlDoc = GetSecurityConfig(); XmlNodeList nodeList = xmlDoc.SelectNodes("/Security/Groups/Group[@ID='" + group.ID.ToString() + "']"); if (nodeList.Count == 1) { XmlNode xmlGroup = nodeList[0]; xmlGroup.Attributes["Name"].Value = group.Name; XmlNode oldPermissions = xmlGroup.SelectNodes("Permissions")[0]; XmlNode newPermissions = xmlDoc.CreateNode(XmlNodeType.Element, "Permissions", ""); if (group.Permissions != null) { if (group.Permissions.Count > 0) { foreach (Zecurity.Permission permission in group.Permissions) { XmlNode xmlPermission = xmlDoc.CreateNode(XmlNodeType.Element, "Permission", ""); AddAttribute("ID", permission.ID.ToString(), xmlPermission); AddAttribute("Path", permission.Path, xmlPermission); AddAttribute("Add", permission.Add.ToString(), xmlPermission); AddAttribute("Edit", permission.Edit.ToString(), xmlPermission); AddAttribute("Delete", permission.Delete.ToString(), xmlPermission); AddAttribute("Trusted", permission.Trusted.ToString(), xmlPermission); AddAttribute("Name", permission.Name, xmlPermission); newPermissions.AppendChild(xmlPermission); } } } xmlGroup.ReplaceChild(newPermissions, oldPermissions); xmlDoc.Save(DCServer.MapPath("~") + DCSiteUrls.GetPath_ZecurityConfigurationPath()); res = true; } } catch { } return(res); }