Seal.Model.SealSecurity.FindSecurityFolder C# (CSharp) Метод

FindSecurityFolder() публичный Метод

public FindSecurityFolder ( List groups, string folder ) : SecurityFolder
groups List
folder string
Результат SecurityFolder
        public SecurityFolder FindSecurityFolder(List<SecurityGroup> groups, string folder)
        {
            SecurityFolder result = null;
            foreach (var group in groups)
            {
                string folderRoot = folder;
                SecurityFolder current = null;
                while (current == null && !string.IsNullOrEmpty(folderRoot))
                {
                    current = group.Folders.FirstOrDefault(i => i.Path == folderRoot);
                    folderRoot = Path.GetDirectoryName(folderRoot);
                }
                if (current != null && current.Path != folder && !current.UseSubFolders)
                {
                    //cannot use this parent
                    current = null;
                }

                if (current != null)
                {
                    if (result != null)
                    {
                        //Merge the groupFolder find in this group with the current result
                        //Weakest right is applied..
                        result.FolderRight = (FolderRight)Math.Min((int)result.FolderRight, (int)current.FolderRight);
                        result.ExpandSubFolders = result.ExpandSubFolders || current.ExpandSubFolders;
                        result.ManageFolder = result.ManageFolder && current.ManageFolder;
                    }
                    else
                    {
                        result = (SecurityFolder)Helper.Clone(current);
                    }

                    //set IsDefined flag
                    if (current.Path == folder) result.IsDefined = true;
                }
            }
            return result;
        }

Usage Example

Пример #1
0
 /// <summary>
 /// Find a security folder from a given name
 /// </summary>
 public SecurityFolder FindSecurityFolder(string folder)
 {
     if (Security == null)
     {
         return(null);
     }
     return(Security.FindSecurityFolder(SecurityGroups, folder));
 }