Example #1
0
 /// <summary>
 /// Check if the Role has the permission specified
 /// </summary>
 /// <param name="permissionID">The Id of the Permission to check</param>
 /// <param name="roleid">The role id to check</param>
 private FolderPermissionInfo FolderHasPermission(int permissionID, int roleid)
 {
     for (int i = 0; i < FolderPermissions.Count; i++)
     {
         FolderPermissionInfo folderPermission = FolderPermissions[i];
         if (folderPermission.RoleID == roleid && permissionID == folderPermission.PermissionID)
         {
             return(folderPermission);
         }
     }
     return(null);
 }
        protected override void AddPermission(PermissionInfo permission, int roleId, string roleName, int userId, string displayName, bool allowAccess)
        {
            var objPermission = new FolderPermissionInfo(permission)
            {
                FolderPath  = FolderPath,
                RoleID      = roleId,
                RoleName    = roleName,
                AllowAccess = allowAccess,
                UserID      = userId,
                DisplayName = displayName
            };

            FolderPermissions.Add(objPermission, true);

            //Clear Permission List
            _permissionsList = null;
        }
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Parse the Permission Keys used to persist the Permissions in the ViewState
        /// </summary>
        /// <param name="settings">A string array of settings</param>
        /// -----------------------------------------------------------------------------
        private FolderPermissionInfo ParseKeys(string[] settings)
        {
            var objFolderPermission = new FolderPermissionInfo();

            //Call base class to load base properties
            base.ParsePermissionKeys(objFolderPermission, settings);
            if (String.IsNullOrEmpty(settings[2]))
            {
                objFolderPermission.FolderPermissionID = -1;
            }
            else
            {
                objFolderPermission.FolderPermissionID = Convert.ToInt32(settings[2]);
            }
            objFolderPermission.FolderPath = FolderPath;
            return(objFolderPermission);
        }
Example #4
0
        /// <summary>
        /// Parse the Permission Keys used to persist the Permissions in the ViewState
        /// </summary>
        /// <param name="settings">A string array of settings</param>
        /// <param name="permisions">An Arraylist to add the Permission object to</param>
        private void ParsePermissionKeys(string[] settings, ArrayList permisions)
        {
            FolderPermissionInfo pi = new FolderPermissionInfo();

            pi.PermissionID = settings.Length > 1 ? Convert.ToInt32(settings[1]) : 0;
            pi.RoleID       = settings.Length > 4 ? Convert.ToInt32(settings[4]) : 0;
            pi.RoleName     = settings.Length > 3 ? settings[3] : "";
            pi.AllowAccess  = true;

            if (settings.Length < 2 || settings[2] == "")
            {
                pi.FolderPermissionID = -1;
            }
            else
            {
                pi.FolderPermissionID = Convert.ToInt32(settings[2]);
            }
            pi.FolderPath = FolderPath;

            //Add FolderPermission to array
            permisions.Add(pi);
        }
Example #5
0
        /// <summary>
        /// Gets the Value of the permission
        /// </summary>
        /// <param name="objPerm">The permission being loaded</param>
        /// <param name="role">The role</param>
        /// <param name="column">The column of the Grid</param>
        /// <returns>A Boolean (True or False)</returns>
        protected override bool GetPermission(PermissionInfo objPerm, RoleInfo role, int column)
        {
            bool permission;

            if (role.RoleID == AdministratorRoleId)
            {
                permission = true;
            }
            else
            {
                FolderPermissionInfo objFolderPermission = FolderHasPermission(objPerm.PermissionID, role.RoleID);
                if (objFolderPermission != null)
                {
                    permission = objFolderPermission.AllowAccess;
                }
                else
                {
                    permission = false;
                }
            }

            return(permission);
        }
Example #6
0
        /// <summary>
        /// Updates a Permission
        /// </summary>
        /// <param name="permission">The permission being updated</param>
        /// <param name="roleid">The id of the role</param>
        /// <param name="roleName">The name of the role</param>
        /// <param name="allowAccess">The value of the permission</param>
        protected override void UpdatePermission(PermissionInfo permission, int roleid, string roleName, bool allowAccess)
        {
            bool isMatch      = false;
            int  permissionId = permission.PermissionID;

            //Search FolderPermission Collection for the permission to Update
            if (FolderPermissions != null)
            {
                foreach (FolderPermissionInfo info in FolderPermissions)
                {
                    if (info.PermissionID == permissionId && info.RoleID == roleid)
                    {
                        //FolderPermission is in collection
                        if (!allowAccess)
                        {
                            //Remove from collection as we only keep AllowAccess permissions
                            FolderPermissions.Remove(info);
                        }
                        isMatch = true;
                        break;
                    }
                }
            }

            //FolderPermission not found so add new
            if (!isMatch && allowAccess)
            {
                FolderPermissionInfo folderPermissionInfo = new FolderPermissionInfo();
                folderPermissionInfo.PermissionID = permissionId;
                folderPermissionInfo.RoleName     = roleName;
                folderPermissionInfo.RoleID       = roleid;
                folderPermissionInfo.AllowAccess  = allowAccess;
                folderPermissionInfo.FolderPath   = FolderPath;
                FolderPermissions.Add(folderPermissionInfo);
            }
        }
        /// <summary>
        /// Updates a Permission
        /// </summary>
        /// <param name="permission">The permission being updated</param>
        /// <param name="roleid">The id of the role</param>
        /// <param name="roleName">The name of the role</param>
        /// <param name="allowAccess">The value of the permission</param>
        protected override void UpdatePermission(PermissionInfo permission, int roleid, string roleName, bool allowAccess)
        {
            bool isMatch = false;
            int permissionId = permission.PermissionID;

            //Search FolderPermission Collection for the permission to Update
            if( FolderPermissions != null )
            {
                foreach (FolderPermissionInfo info in FolderPermissions)
                {
                    if (info.PermissionID == permissionId && info.RoleID == roleid)
                    {
                        //FolderPermission is in collection
                        if (!allowAccess)
                        {
                            //Remove from collection as we only keep AllowAccess permissions
                            FolderPermissions.Remove(info);
                        }
                        isMatch = true;
                        break;
                    }
                }
            }

            //FolderPermission not found so add new
            if (!isMatch && allowAccess)
            {
                FolderPermissionInfo folderPermissionInfo = new FolderPermissionInfo();
                folderPermissionInfo.PermissionID = permissionId;
                folderPermissionInfo.RoleName = roleName;
                folderPermissionInfo.RoleID = roleid;
                folderPermissionInfo.AllowAccess = allowAccess;
                folderPermissionInfo.FolderPath = FolderPath;
                FolderPermissions.Add(folderPermissionInfo);
            }
        }
        /// <summary>
        /// Parse the Permission Keys used to persist the Permissions in the ViewState
        /// </summary>
        /// <param name="settings">A string array of settings</param>
        /// <param name="permisions">An Arraylist to add the Permission object to</param>
        private void ParsePermissionKeys(string[] settings, ArrayList permisions)
        {
            FolderPermissionInfo pi = new FolderPermissionInfo();
            pi.PermissionID = settings.Length > 1 ? Convert.ToInt32(settings[1]) : 0;
            pi.RoleID = settings.Length > 4 ? Convert.ToInt32(settings[4]) : 0;
            pi.RoleName = settings.Length > 3 ? settings[3] : "";
            pi.AllowAccess = true;

            if (settings.Length < 2 || settings[2] == "")
            {
                pi.FolderPermissionID = -1;
            }
            else
            {
                pi.FolderPermissionID = Convert.ToInt32(settings[2]);
            }
            pi.FolderPath = FolderPath;

            //Add FolderPermission to array
            permisions.Add(pi);
        }
Example #9
0
        public ActionResult Save(int folderid, bool Copyfolder, dynamic Data)
        {
            ActionResult actionResult = new ActionResult();
            IFolderInfo  parentFolder = FolderManager.Instance.GetFolder(folderid);

            if (parentFolder != null)
            {
                parentFolder.FolderPermissions.Clear();

                DotNetNuke.Security.Permissions.PermissionController permController = new DotNetNuke.Security.Permissions.PermissionController();
                ArrayList permArray = permController.GetPermissionByCodeAndKey("SYSTEM_FOLDER", "READ");

                List <PermissionInfo> SYS_FOLDER_PERM = new List <PermissionInfo>();
                if (permArray.Count == 1)
                {
                    SYS_FOLDER_PERM.Add(permArray[0] as PermissionInfo);
                }

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

                permArray = permController.GetPermissionByCodeAndKey("SYSTEM_FOLDER", "WRITE");
                if (permArray.Count == 1)
                {
                    SYS_FOLDER_PERM.Add(permArray[0] as PermissionInfo);
                }

                foreach (dynamic item in Data.PermissionsRoles)
                {
                    foreach (dynamic p in item.Permissions)
                    {
                        bool   AllowAcess   = bool.Parse(p.AllowAccess.ToString());
                        string PermissionID = p.PermissionId.ToString();
                        if (AllowAcess)
                        {
                            FolderPermissionInfo folderpermissioninfo = new FolderPermissionInfo
                            {
                                AllowAccess  = AllowAcess,
                                PermissionID = Convert.ToInt32(PermissionID)
                            };
                            PermissionInfo SYS_PERM = SYS_FOLDER_PERM.Where(a => a.PermissionID == folderpermissioninfo.PermissionID).FirstOrDefault();
                            if (SYS_PERM != null)
                            {
                                folderpermissioninfo.PermissionKey = SYS_PERM.PermissionKey;
                            }

                            folderpermissioninfo.RoleID = int.Parse(item.RoleId.ToString());
                            parentFolder.FolderPermissions.Add(folderpermissioninfo);
                        }
                    }
                }

                foreach (dynamic item in Data.PermissionsUsers)
                {
                    foreach (dynamic p in item.Permissions)
                    {
                        bool   AllowAcess   = bool.Parse(p.AllowAccess.ToString());
                        string PermissionID = p.PermissionId.ToString();
                        if (AllowAcess)
                        {
                            FolderPermissionInfo folderpermissioninfo = new FolderPermissionInfo
                            {
                                AllowAccess  = AllowAcess,
                                PermissionID = Convert.ToInt32(PermissionID)
                            };
                            PermissionInfo SYS_PERM = SYS_FOLDER_PERM.Where(a => a.PermissionID == folderpermissioninfo.PermissionID).FirstOrDefault();
                            if (SYS_PERM != null)
                            {
                                folderpermissioninfo.PermissionKey = SYS_PERM.PermissionKey;
                            }

                            folderpermissioninfo.UserID = int.Parse(item.UserId.ToString());
                            parentFolder.FolderPermissions.Add(folderpermissioninfo);
                        }
                    }
                }
                FolderManager.Instance.UpdateFolder(parentFolder);
                if (Copyfolder)
                {
                    FolderPermissionController.CopyPermissionsToSubfolders(parentFolder, parentFolder.FolderPermissions);
                }
            }
            Dictionary <int, bool> result = new Dictionary <int, bool>();

            if (Data != null && Data.FolderIds != null && Data.FolderIds.Count > 0)
            {
                foreach (dynamic id in Data.FolderIds)
                {
                    result.Add(int.Parse(id.Value), BrowseUploadFactory.HasBrowseOpenPerm(new Vanjaro.Common.Components.TreeView()
                    {
                        Value = int.Parse(id.Value)
                    }));
                }
            }
            actionResult.Data = result;
            return(actionResult);
        }
        protected override void AddPermission(PermissionInfo permission, int roleId, string roleName, int userId, string displayName, bool allowAccess)
        {
            var objPermission = new FolderPermissionInfo(permission)
            {
                FolderPath = FolderPath,
                RoleID = roleId,
                RoleName = roleName,
                AllowAccess = allowAccess,
                UserID = userId,
                DisplayName = displayName
            };
            FolderPermissions.Add(objPermission, true);

            //Clear Permission List
            _permissionsList = null;
        }
        /// -----------------------------------------------------------------------------
        /// <summary>
        /// Parse the Permission Keys used to persist the Permissions in the ViewState
        /// </summary>
        /// <param name="settings">A string array of settings</param>
        /// -----------------------------------------------------------------------------
        private FolderPermissionInfo ParseKeys(string[] settings)
        {
            var objFolderPermission = new FolderPermissionInfo();

            //Call base class to load base properties
            base.ParsePermissionKeys(objFolderPermission, settings);
            if (String.IsNullOrEmpty(settings[2]))
            {
                objFolderPermission.FolderPermissionID = -1;
            }
            else
            {
                objFolderPermission.FolderPermissionID = Convert.ToInt32(settings[2]);
            }
            objFolderPermission.FolderPath = FolderPath;
            return objFolderPermission;
        }