public int Add(FolderPermissionInfo value, bool checkForDuplicates)
 {
     if (!checkForDuplicates)
     {
         return(Add(value));
     }
     else
     {
         bool isMatch = false;
         foreach (PermissionInfoBase permission in this.List)
         {
             if (permission.PermissionID == value.PermissionID && permission.UserID == value.UserID && permission.RoleID == value.RoleID)
             {
                 isMatch = true;
                 break;
             }
         }
         if (!isMatch)
         {
             return(Add(value));
         }
         else
         {
             return(0);
         }
     }
 }
 public int Add(FolderPermissionInfo value, bool checkForDuplicates)
 {
     if (!checkForDuplicates)
     {
         return Add(value);
     }
     else
     {
         bool isMatch = false;
         foreach (PermissionInfoBase permission in this.List)
         {
             if (permission.PermissionID == value.PermissionID && permission.UserID == value.UserID && permission.RoleID == value.RoleID)
             {
                 isMatch = true;
                 break;
             }
         }
         if (!isMatch)
         {
             return Add(value);
         }
         else
             return 0;
     }
 }
 public int IndexOf(FolderPermissionInfo value)
 {
     return List.IndexOf(value);
 }
 public int Add(FolderPermissionInfo value)
 {
     return List.Add(value);
 }
 public bool Contains(FolderPermissionInfo value)
 {
     return List.Contains(value);
 }
         //-----------------------------------------------------------------------------
         //<summary>
         //Creates a User Folder
         //</summary>
         //<param name="_PortalSettings">Portal Settings for the Portal</param>
         //<param name="parentFolder">The Parent Folder Name</param>
         //<param name="UserID">The UserID, in order to generate the path/foldername</param>
         //<param name="StorageLocation">The Storage Location</param>
         //<remarks>
         //</remarks>
         //<history>
         //   [jlucarino]	02/26/2010	Created
         //</history>
         //-----------------------------------------------------------------------------
        public static void AddUserFolder(PortalSettings _PortalSettings, string parentFolder, int StorageLocation, int UserID)
        {
            int PortalId = 0;
            string ParentFolderName = null;
            System.IO.DirectoryInfo dinfoNew = default(System.IO.DirectoryInfo);
            string RootFolder = "";
            string SubFolder = "";

            PortalId = _PortalSettings.PortalId;
            ParentFolderName = _PortalSettings.HomeDirectoryMapPath;

            RootFolder = GetUserFolderPathElement(UserID, EnumUserFolderElement.Root);
            SubFolder = GetUserFolderPathElement(UserID, EnumUserFolderElement.SubFolder);

            //create root folder
            string folderPath = "";
            folderPath = System.IO.Path.Combine(Path.Combine(ParentFolderName, "Users"), RootFolder);
            dinfoNew = new System.IO.DirectoryInfo(folderPath);
            if (!dinfoNew.Exists)
            {
                dinfoNew.Create();
                AddFolder(PortalId, folderPath.Substring(ParentFolderName.Length).Replace("\\", "/"), StorageLocation);
            }

            //create two-digit subfolder
            folderPath = System.IO.Path.Combine(folderPath, SubFolder);
            dinfoNew = new System.IO.DirectoryInfo(folderPath);
            if (!dinfoNew.Exists)
            {
                dinfoNew.Create();
                AddFolder(PortalId, folderPath.Substring(ParentFolderName.Length).Replace("\\", "/"), StorageLocation);
            }

            //create folder from UserID
            folderPath = System.IO.Path.Combine(folderPath, UserID.ToString());
            dinfoNew = new System.IO.DirectoryInfo(folderPath);
            if (!dinfoNew.Exists)
            {
                dinfoNew.Create();
                int folderID = AddFolder(PortalId, folderPath.Substring(ParentFolderName.Length).Replace("\\", "/"), StorageLocation);

                //Give user Read Access to this folder
                CommonLibrary.Services.FileSystem.FolderInfo folder = new CommonLibrary.Services.FileSystem.FolderController().GetFolderInfo(PortalId, folderID);
                foreach (PermissionInfo permission in PermissionController.GetPermissionsByFolder())
                {
                    if (permission.PermissionKey.ToUpper() == "READ" || permission.PermissionKey.ToUpper() == "WRITE")
                    {
                        FolderPermissionInfo folderPermission = new FolderPermissionInfo(permission);
                        folderPermission.FolderID = folder.FolderID;
                        folderPermission.UserID = UserID;
                        folderPermission.RoleID = Null.NullInteger;
                        folderPermission.AllowAccess = true;

                        folder.FolderPermissions.Add(folderPermission);
                    }
                }

                FolderPermissionController.SaveFolderPermissions(folder);

            }
        }
 public static void SetFolderPermission(int PortalId, int FolderId, int PermissionId, int RoleId, int UserId, string relativePath)
 {
     FolderPermissionInfo objFolderPermissionInfo;
     CommonLibrary.Services.FileSystem.FolderController objController = new CommonLibrary.Services.FileSystem.FolderController();
     CommonLibrary.Services.FileSystem.FolderInfo folder = objController.GetFolderInfo(PortalId, FolderId);
     foreach (FolderPermissionInfo fpi in folder.FolderPermissions)
     {
         if (fpi.FolderID == FolderId
             && fpi.PermissionID == PermissionId
             && fpi.RoleID == RoleId
             && fpi.UserID == UserId
             && fpi.AllowAccess == true)
         {
             return;
         }
     }
     objFolderPermissionInfo = new FolderPermissionInfo();
     objFolderPermissionInfo.FolderID = FolderId;
     objFolderPermissionInfo.PermissionID = PermissionId;
     objFolderPermissionInfo.RoleID = RoleId;
     objFolderPermissionInfo.UserID = UserId;
     objFolderPermissionInfo.AllowAccess = true;
     folder.FolderPermissions.Add(objFolderPermissionInfo, true);
     FolderPermissionController.SaveFolderPermissions(folder);
 }
 private void ParseFolderPermissions(XmlNodeList nodeFolderPermissions, int PortalId, FolderInfo folder)
 {
     Security.Permissions.PermissionController objPermissionController = new Security.Permissions.PermissionController();
     Security.Permissions.FolderPermissionController objFolderPermissionController = new Security.Permissions.FolderPermissionController();
     RoleController objRoleController = new RoleController();
     int PermissionID = 0;
     folder.FolderPermissions.Clear();
     foreach (XmlNode xmlFolderPermission in nodeFolderPermissions)
     {
         string PermissionKey = XmlUtils.GetNodeValue(xmlFolderPermission.CreateNavigator(), "permissionkey");
         string PermissionCode = XmlUtils.GetNodeValue(xmlFolderPermission.CreateNavigator(), "permissioncode");
         string RoleName = XmlUtils.GetNodeValue(xmlFolderPermission.CreateNavigator(), "rolename");
         bool AllowAccess = XmlUtils.GetNodeValueBoolean(xmlFolderPermission, "allowaccess");
         foreach (PermissionInfo objPermission in objPermissionController.GetPermissionByCodeAndKey(PermissionCode, PermissionKey))
         {
             PermissionID = objPermission.PermissionID;
         }
         int RoleID = int.MinValue;
         switch (RoleName)
         {
             case Globals.glbRoleAllUsersName:
                 RoleID = Convert.ToInt32(Globals.glbRoleAllUsers);
                 break;
             case Common.Globals.glbRoleUnauthUserName:
                 RoleID = Convert.ToInt32(Globals.glbRoleUnauthUser);
                 break;
             default:
                 RoleInfo objRole = objRoleController.GetRoleByName(PortalId, RoleName);
                 if (objRole != null)
                 {
                     RoleID = objRole.RoleID;
                 }
                 break;
         }
         if (RoleID != int.MinValue)
         {
             FolderPermissionInfo objFolderPermission = new FolderPermissionInfo();
             objFolderPermission.FolderID = folder.FolderID;
             objFolderPermission.PermissionID = PermissionID;
             objFolderPermission.RoleID = RoleID;
             objFolderPermission.AllowAccess = AllowAccess;
             folder.FolderPermissions.Add(objFolderPermission);
         }
     }
     FolderPermissionController.SaveFolderPermissions(folder);
 }
 public static void SetFolderPermissions(int PortalId, int FolderId, int AdministratorRoleId, string relativePath)
 {
     CommonLibrary.Services.FileSystem.FolderInfo folder = new CommonLibrary.Services.FileSystem.FolderController().GetFolderInfo(PortalId, FolderId);
     foreach (PermissionInfo objPermission in PermissionController.GetPermissionsByFolder())
     {
         FolderPermissionInfo folderPermission = new FolderPermissionInfo(objPermission);
         folderPermission.FolderID = FolderId;
         folderPermission.RoleID = AdministratorRoleId;
         folder.FolderPermissions.Add(folderPermission, true);
     }
     FolderPermissionController.SaveFolderPermissions(folder);
 }
 public void Insert(int index, FolderPermissionInfo value)
 {
     List.Insert(index, value);
 }
 public int IndexOf(FolderPermissionInfo value)
 {
     return(List.IndexOf(value));
 }
 public int Add(FolderPermissionInfo value)
 {
     return(List.Add(value));
 }
 public bool Contains(FolderPermissionInfo value)
 {
     return(List.Contains(value));
 }
 public void Remove(FolderPermissionInfo value)
 {
     List.Remove(value);
 }
 public void Insert(int index, FolderPermissionInfo value)
 {
     List.Insert(index, value);
 }
 public static void SetFolderPermissions(int PortalId, int FolderId, string relativePath)
 {
     if (!String.IsNullOrEmpty(relativePath))
     {
         CommonLibrary.Services.FileSystem.FolderInfo folder = new CommonLibrary.Services.FileSystem.FolderController().GetFolderInfo(PortalId, FolderId);
         string parentFolderPath = relativePath.Substring(0, relativePath.Substring(0, relativePath.Length - 1).LastIndexOf("/") + 1);
         foreach (FolderPermissionInfo objPermission in FolderPermissionController.GetFolderPermissionsCollectionByFolder(PortalId, parentFolderPath))
         {
             FolderPermissionInfo folderPermission = new FolderPermissionInfo(objPermission);
             folderPermission.FolderID = FolderId;
             folderPermission.RoleID = objPermission.RoleID;
             folderPermission.UserID = objPermission.UserID;
             folderPermission.AllowAccess = objPermission.AllowAccess;
             folder.FolderPermissions.Add(folderPermission, true);
         }
         FolderPermissionController.SaveFolderPermissions(folder);
     }
 }
 public void Remove(FolderPermissionInfo value)
 {
     List.Remove(value);
 }
 private void AddFolderPermissions(int PortalId, int folderId)
 {
     PortalInfo objPortal = GetPortal(PortalId);
     FolderController objController = new FolderController();
     FolderPermissionInfo objFolderPermission;
     FolderInfo folder = objController.GetFolderInfo(PortalId, folderId);
     PermissionController objPermissionController = new PermissionController();
     foreach (PermissionInfo objpermission in objPermissionController.GetPermissionByCodeAndKey("SYSTEM_FOLDER", ""))
     {
         objFolderPermission = new FolderPermissionInfo(objpermission);
         objFolderPermission.FolderID = folder.FolderID;
         objFolderPermission.RoleID = objPortal.AdministratorRoleId;
         folder.FolderPermissions.Add(objFolderPermission);
         if (objpermission.PermissionKey == "READ")
         {
             objFolderPermission = new FolderPermissionInfo(objpermission);
             objFolderPermission.FolderID = folder.FolderID;
             objFolderPermission.RoleID = int.Parse(Globals.glbRoleAllUsers);
             folder.FolderPermissions.Add(objFolderPermission);
         }
     }
     FolderPermissionController.SaveFolderPermissions(folder);
 }