/// <summary> /// Gets the permission names. /// </summary> /// <param name="uris">The uris.</param> /// <returns>List of premission names.</returns> internal static List <string> GetPermissionNames(IEnumerable <string> uris) { List <string> permissionNames = new List <string>(); foreach (string uri in uris) { SecurityPredicate pr = SecurityPredicateAccess.SecurityPredicates.Where(sp => sp.Uri.Equals(uri, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (pr != null) { permissionNames.Add(pr.Name); } else { pr = SecurityPredicateAccess.SecurityPredicates.Where(sp => sp.InverseUri.Equals(uri, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (pr != null) { permissionNames.Add(pr.Name); } } } ////Process 'read' permission - if no deny read is present add read permission to the list if (!uris.Contains(SecurityPredicateAccess.GetInverseUri("Read"))) { permissionNames.Add("Read"); } return(permissionNames); }
/// <summary> /// Reads the predicates list. /// </summary> private static void ReadPredicatesList() { predicateList = new List <SecurityPredicate>(); XmlDocument doc = new XmlDocument(); doc.LoadXml(ConstantStrings.SecurityConfiguration); XmlNodeList lst = doc.SelectNodes(@"//SecurityPredicates/add"); foreach (XmlNode node in lst) { string name = node.Attributes["Name"].Value; string uri = node.Attributes["Uri"].Value; string inverseUri = node.Attributes["InversePredicateUri"].Value; int priority = Convert.ToInt32(node.Attributes["Priority"].Value, CultureInfo.InvariantCulture); SecurityPredicate predicate = new SecurityPredicate { Name = name, Uri = uri, InverseUri = inverseUri, Priority = priority }; predicateList.Add(predicate); } }