/// <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); }
/// <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); }
/// <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); }
/// <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); } }
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); }
/// ----------------------------------------------------------------------------- /// <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; }