private static RbacEntitlement FromXml(string metaDataxml) { if (string.IsNullOrEmpty(metaDataxml)) { return(null); } RbacEntitlement entitlements = new RbacEntitlement(); XmlDocument doc = new XmlDocument(); doc.LoadXml(metaDataxml); foreach (XmlNode node in doc.DocumentElement.ChildNodes) { if (node.NodeType == XmlNodeType.Comment) { continue; } else if (node.Name == "RbacEntitlementMenus") { entitlements.Menus = RbacEntitlementMenus.FromXml(node); } if (node.Name == "RbacEntitlementScreens") { entitlements.Screens = RbacEntitlementScreens.FromXml(node); } } return(entitlements); }
public RbacEntitlement(RbacRole role) { if (role == null) { RbacException.Raise("A valid role is required to create entitlements!"); } RbacEntitlement entitlement = FromXml(role.MetaDataEntitlements); if (entitlement != null) { this.Menus = entitlement.Menus; this.Screens = entitlement.Screens; } }