private void AddCheckPermissions(ScreenName parent, CheckPermissions checkPermissions, IEnumerable <string> propagationPaths, bool addSelfPropagationSource) { foreach (var propagationKey in propagationPaths) { HashSet <string> nextPropagationPaths; var permissionKey = Pair.Create(propagationKey, parent); if (!checkPermissionsForScreenName.ContainsKey(permissionKey)) // No permissions still set for this key { if (permissionPropagationPath.TryGetValue(propagationKey, out nextPropagationPaths)) { checkPermissionsForScreenName.Add(permissionKey, checkPermissions); AddCheckPermissions(parent, checkPermissions, nextPropagationPaths, /*addSelfPropagationSource*/ true); foreach (var childIndex in childIndexes) { childIndex.AddCheckPermissions(parent, checkPermissions, nextPropagationPaths); } } else { if (addSelfPropagationSource) // add target of self propagations anyway, since they can be the target server actions { checkPermissionsForScreenName.Add(permissionKey, checkPermissions); } } } } }
private void AddCheckPermissions(ScreenName parent, CheckPermissions checkPermissions, IEnumerable <string> propagationPaths) { AddCheckPermissions(parent, checkPermissions, propagationPaths, /*addSelfPropagationSource*/ false); }
public void AddCheckPermissions(ScreenName parent, CheckPermissions checkPermissions) { AddCheckPermissions(parent, checkPermissions, permissionPropagationPath.Keys, /*addSelfPropagationSource*/ false); }
public void AddAnonymousCheckPermission(ScreenName screen, string[] propagationPaths) { AddCheckPermissions(screen, CheckPermissionsIndex.AnonymousCheck, propagationPaths); }
public bool TryGetCheckPermissions(ScreenName parentName, String usageKey, out CheckPermissions checkPermissions) { return(checkPermissionsForScreenName.TryGetValue(Pair.Create(usageKey, parentName), out checkPermissions)); }
public bool TryGetCheckPermissions(ScreenName parentName, out CheckPermissions checkPermissions) { return(TryGetCheckPermissions(parentName, ANY_USAGE_KEY, out checkPermissions)); }