private static FolderPermissionCollection FillFolderPermissionCollection(IDataReader dr)
 {
     FolderPermissionCollection arr = new FolderPermissionCollection();
     try
     {
         while (dr.Read())
         {
             // fill business object
             FolderPermissionInfo obj = FillFolderPermissionInfo(dr, false);
             // add to collection
             arr.Add(obj);
         }
     }
     catch (Exception exc)
     {
         Exceptions.LogException(exc);
     }
     finally
     {
         // close datareader
         if (dr != null)
         {
             dr.Close();
         }
     }
     return arr;
 }
Beispiel #2
0
        private static FolderPermissionCollection FillFolderPermissionCollection(IDataReader dr)
        {
            FolderPermissionCollection arr = new FolderPermissionCollection();

            try
            {
                while (dr.Read())
                {
                    // fill business object
                    FolderPermissionInfo obj = FillFolderPermissionInfo(dr, false);
                    // add to collection
                    arr.Add(obj);
                }
            }
            catch (Exception exc)
            {
                Exceptions.LogException(exc);
            }
            finally
            {
                // close datareader
                if (dr != null)
                {
                    dr.Close();
                }
            }
            return(arr);
        }
Beispiel #3
0
        public FolderPermissionCollection GetFolderPermissionsByFolder(ArrayList arrFolderPermissions, string FolderPath)
        {
            FolderPermissionCollection p = new FolderPermissionCollection();

            for (int i = 0; i < arrFolderPermissions.Count; i++)
            {
                FolderPermissionInfo objFolderPermission = (FolderPermissionInfo)arrFolderPermissions[i];
                if (objFolderPermission.FolderPath == FolderPath)
                {
                    p.Add(objFolderPermission);
                }
            }
            return(p);
        }
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// SaveFolderPermissions updates a Folder's permissions
        /// </summary>
        /// <param name="folder">The Folder to update</param>
        /// <history>
        /// 	[cnurse]	04/15/2009   Created
        /// </history>
        /// -----------------------------------------------------------------------------
        public virtual void SaveFolderPermissions(IFolderInfo folder)
        {
            if ((folder.FolderPermissions != null))
            {
                //Ensure that if role/user has been given a permission that is not Read/Browse then they also need Read/Browse
                var permController = new PermissionController();
                ArrayList permArray = permController.GetPermissionByCodeAndKey("SYSTEM_FOLDER", "READ");
                PermissionInfo readPerm = null;
                if (permArray.Count == 1)
                {
                    readPerm = permArray[0] as PermissionInfo;
                }

                PermissionInfo browsePerm = null;
                permArray = permController.GetPermissionByCodeAndKey("SYSTEM_FOLDER", "BROWSE");
                if (permArray.Count == 1)
                {
                    browsePerm = permArray[0] as PermissionInfo;
                }

                var additionalPermissions = new FolderPermissionCollection();
                foreach (FolderPermissionInfo folderPermission in folder.FolderPermissions)
                {
                    if (folderPermission.PermissionKey != "BROWSE" && folderPermission.PermissionKey != "READ" && folderPermission.AllowAccess)
                    {
                        //Try to add Read permission
                        var newFolderPerm = new FolderPermissionInfo(readPerm)
                                                {
                                                    FolderID = folderPermission.FolderID, 
                                                    RoleID = folderPermission.RoleID, 
                                                    UserID = folderPermission.UserID, 
                                                    AllowAccess = true
                                                };

                        additionalPermissions.Add(newFolderPerm);

                        //Try to add Browse permission
                        newFolderPerm = new FolderPermissionInfo(browsePerm)
                                            {
                                                FolderID = folderPermission.FolderID, 
                                                RoleID = folderPermission.RoleID, 
                                                UserID = folderPermission.UserID, 
                                                AllowAccess = true
                                            };

                        additionalPermissions.Add(newFolderPerm);
                    }
                }

                foreach (FolderPermissionInfo folderPermission in additionalPermissions)
                {
                    folder.FolderPermissions.Add(folderPermission, true);
                }

                dataProvider.DeleteFolderPermissionsByFolderPath(folder.PortalID, folder.FolderPath);
                foreach (FolderPermissionInfo folderPermission in folder.FolderPermissions)
                {
                    dataProvider.AddFolderPermission(folder.FolderID,
                                                        folderPermission.PermissionID,
                                                        folderPermission.RoleID,
                                                        folderPermission.AllowAccess,
                                                        folderPermission.UserID,
                                                        UserController.Instance.GetCurrentUserInfo().UserID);
                }                
            }
        }
        public FolderPermissionCollection GetFolderPermissionsByFolder(ArrayList arrFolderPermissions, string FolderPath)
        {
            FolderPermissionCollection p = new FolderPermissionCollection();

            for (int i = 0; i < arrFolderPermissions.Count; i++)
            {
                FolderPermissionInfo objFolderPermission = (FolderPermissionInfo)arrFolderPermissions[i];
                if (objFolderPermission.FolderPath == FolderPath)
                {
                    p.Add(objFolderPermission);
                }
            }
            return p;
        }
Beispiel #6
0
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// SaveFolderPermissions updates a Folder's permissions
        /// </summary>
        /// <param name="folder">The Folder to update</param>
        /// <history>
        ///     [cnurse]	04/15/2009   Created
        /// </history>
        /// -----------------------------------------------------------------------------
        public virtual void SaveFolderPermissions(IFolderInfo folder)
        {
            if ((folder.FolderPermissions != null))
            {
                FolderPermissionCollection folderPermissions = GetFolderPermissionsCollectionByFolder(folder.PortalID, folder.FolderPath);

                //Ensure that if role/user has been given a permission that is not Read/Browse then they also need Read/Browse
                var            permController = new PermissionController();
                ArrayList      permArray      = permController.GetPermissionByCodeAndKey("SYSTEM_FOLDER", "READ");
                PermissionInfo readPerm       = null;
                if (permArray.Count == 1)
                {
                    readPerm = permArray[0] as PermissionInfo;
                }

                PermissionInfo browsePerm = null;
                permArray = permController.GetPermissionByCodeAndKey("SYSTEM_FOLDER", "BROWSE");
                if (permArray.Count == 1)
                {
                    browsePerm = permArray[0] as PermissionInfo;
                }

                var additionalPermissions = new FolderPermissionCollection();
                foreach (FolderPermissionInfo folderPermission in folder.FolderPermissions)
                {
                    if (folderPermission.PermissionKey != "BROWSE" && folderPermission.PermissionKey != "READ")
                    {
                        //Try to add Read permission
                        var newFolderPerm = new FolderPermissionInfo(readPerm)
                        {
                            FolderID    = folderPermission.FolderID,
                            RoleID      = folderPermission.RoleID,
                            UserID      = folderPermission.UserID,
                            AllowAccess = folderPermission.AllowAccess
                        };

                        additionalPermissions.Add(newFolderPerm);

                        //Try to add Browse permission
                        newFolderPerm = new FolderPermissionInfo(browsePerm)
                        {
                            FolderID    = folderPermission.FolderID,
                            RoleID      = folderPermission.RoleID,
                            UserID      = folderPermission.UserID,
                            AllowAccess = folderPermission.AllowAccess
                        };

                        additionalPermissions.Add(newFolderPerm);
                    }
                }

                foreach (FolderPermissionInfo folderPermission in additionalPermissions)
                {
                    folder.FolderPermissions.Add(folderPermission, true);
                }

                if (!folderPermissions.CompareTo(folder.FolderPermissions))
                {
                    dataProvider.DeleteFolderPermissionsByFolderPath(folder.PortalID, folder.FolderPath);

                    foreach (FolderPermissionInfo folderPermission in folder.FolderPermissions)
                    {
                        dataProvider.AddFolderPermission(folder.FolderID,
                                                         folderPermission.PermissionID,
                                                         folderPermission.RoleID,
                                                         folderPermission.AllowAccess,
                                                         folderPermission.UserID,
                                                         UserController.GetCurrentUserInfo().UserID);
                    }
                }
            }
        }