Ejemplo n.º 1
0
            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);
            }
Ejemplo n.º 2
0
            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);
            }
Ejemplo n.º 3
0
            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);
            }
Ejemplo n.º 4
0
            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);
            }