Skip to content

Commit 83a6890

Browse files
committed
Extract IFolderPermissionInfo
1 parent 30627c8 commit 83a6890

File tree

6 files changed

+148
-55
lines changed

6 files changed

+148
-55
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
// See the LICENSE file in the project root for more information
4+
5+
namespace DotNetNuke.Abstractions.Security.Permissions;
6+
7+
/// <summary>Information about the application of an instance of a folder permission.</summary>
8+
public interface IFolderPermissionInfo : IPermissionInfo
9+
{
10+
/// <summary>Gets or sets the ID of the folder permission.</summary>
11+
int FolderPermissionId { get; set; }
12+
13+
/// <summary>Gets or sets the folder ID to which the permission applies.</summary>
14+
int FolderId { get; set; }
15+
16+
/// <summary>Gets or sets the path of the folder to which the permission applies.</summary>
17+
string FolderPath { get; set; }
18+
19+
/// <summary>Gets or sets the portal ID of the folder to which the permission applies.</summary>
20+
int PortalId { get; set; }
21+
}

DNN Platform/DotNetNuke.Abstractions/Security/Permissions/IPermissionDefinitionInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
namespace DotNetNuke.Abstractions.Security.Permissions;
66

7-
/// <summary>PermissionInfo provides the Entity Layer for Permissions.</summary>
7+
/// <summary>Information about the definition of a permission.</summary>
88
public interface IPermissionDefinitionInfo
99
{
10-
/// <summary>Gets or sets the Mdoule Definition ID.</summary>
10+
/// <summary>Gets or sets the Module Definition ID.</summary>
1111
public int ModuleDefId { get; set; }
1212

1313
/// <summary>Gets or sets the Permission Code.</summary>

DNN Platform/DotNetNuke.Abstractions/Security/Permissions/IPermissionInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace DotNetNuke.Abstractions.Security.Permissions;
66

7-
/// <summary>PermissionInfoBase provides a base class for PermissionInfo classes.</summary>
7+
/// <summary>Information about an applied instance of a permission.</summary>
88
public interface IPermissionInfo : IPermissionDefinitionInfo
99
{
1010
/// <summary>Gets or sets a value indicating whether gets and sets a flag that indicates whether the user or role has permission.</summary>

DNN Platform/Library/Security/Permissions/FolderPermissionInfo.cs

Lines changed: 92 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,31 +5,32 @@ namespace DotNetNuke.Security.Permissions
55
{
66
using System;
77
using System.Data;
8-
using System.Xml.Serialization;
9-
8+
using System.Xml.Serialization;
9+
10+
using DotNetNuke.Abstractions.Security.Permissions;
1011
using DotNetNuke.Common.Utilities;
1112
using DotNetNuke.Entities.Modules;
12-
using Newtonsoft.Json;
13-
13+
using Newtonsoft.Json;
14+
1415
[Serializable]
15-
public class FolderPermissionInfo : PermissionInfoBase, IHydratable
16+
public class FolderPermissionInfo : PermissionInfoBase, IHydratable, IFolderPermissionInfo
1617
{
1718
// local property declarations
18-
private int folderID;
19+
private int folderId;
1920
private string folderPath;
20-
private int folderPermissionID;
21-
private int portalID;
21+
private int folderPermissionId;
22+
private int portalId;
2223

2324
/// <summary>
2425
/// Initializes a new instance of the <see cref="FolderPermissionInfo"/> class.
2526
/// Constructs a new FolderPermissionInfo.
2627
/// </summary>
2728
public FolderPermissionInfo()
2829
{
29-
this.folderPermissionID = Null.NullInteger;
30+
this.folderPermissionId = Null.NullInteger;
3031
this.folderPath = Null.NullString;
31-
this.portalID = Null.NullInteger;
32-
this.folderID = Null.NullInteger;
32+
this.portalId = Null.NullInteger;
33+
this.folderId = Null.NullInteger;
3334
}
3435

3536
/// <summary>
@@ -38,57 +39,118 @@ public FolderPermissionInfo()
3839
/// </summary>
3940
/// <param name="permission">A PermissionInfo object.</param>
4041
public FolderPermissionInfo(PermissionInfo permission)
42+
: this((IPermissionInfo)permission)
43+
{
44+
}
45+
46+
/// <summary>
47+
/// Initializes a new instance of the <see cref="FolderPermissionInfo"/> class.
48+
/// Constructs a new FolderPermissionInfo.
49+
/// </summary>
50+
/// <param name="permission">A PermissionInfo object.</param>
51+
public FolderPermissionInfo(IPermissionInfo permission)
4152
: this()
4253
{
43-
this.ModuleDefID = permission.ModuleDefID;
44-
this.PermissionCode = permission.PermissionCode;
45-
this.PermissionID = permission.PermissionID;
46-
this.PermissionKey = permission.PermissionKey;
47-
this.PermissionName = permission.PermissionName;
54+
var @this = (IPermissionDefinitionInfo)this;
55+
@this.ModuleDefId = permission.ModuleDefId;
56+
@this.PermissionCode = permission.PermissionCode;
57+
@this.PermissionId = permission.PermissionId;
58+
@this.PermissionKey = permission.PermissionKey;
59+
@this.PermissionName = permission.PermissionName;
4860
}
4961

5062
[XmlIgnore]
5163
[JsonIgnore]
64+
[Obsolete($"Deprecated in DotNetNuke 9.13.1. Use {nameof(IFolderPermissionInfo)}.{nameof(IFolderPermissionInfo.FolderPermissionId)} instead. Scheduled for removal in v11.0.0.")]
5265
public int FolderPermissionID
5366
{
5467
get
5568
{
56-
return this.folderPermissionID;
69+
return ((IFolderPermissionInfo)this).FolderPermissionId;
5770
}
5871

5972
set
6073
{
61-
this.folderPermissionID = value;
74+
((IFolderPermissionInfo)this).FolderPermissionId = value;
6275
}
6376
}
6477

6578
[XmlIgnore]
6679
[JsonIgnore]
80+
int IFolderPermissionInfo.FolderPermissionId
81+
{
82+
get
83+
{
84+
return this.folderPermissionId;
85+
}
86+
87+
set
88+
{
89+
this.folderPermissionId = value;
90+
}
91+
}
92+
93+
[XmlIgnore]
94+
[JsonIgnore]
95+
[Obsolete($"Deprecated in DotNetNuke 9.13.1. Use {nameof(IFolderPermissionInfo)}.{nameof(IFolderPermissionInfo.FolderId)} instead. Scheduled for removal in v11.0.0.")]
6796
public int FolderID
6897
{
6998
get
7099
{
71-
return this.folderID;
100+
return ((IFolderPermissionInfo)this).FolderId;
72101
}
73102

74103
set
75104
{
76-
this.folderID = value;
105+
((IFolderPermissionInfo)this).FolderId = value;
77106
}
78107
}
79108

80109
[XmlIgnore]
81110
[JsonIgnore]
111+
[Obsolete($"Deprecated in DotNetNuke 9.13.1. Use {nameof(IFolderPermissionInfo)}.{nameof(IFolderPermissionInfo.FolderId)} instead. Scheduled for removal in v11.0.0.")]
112+
int IFolderPermissionInfo.FolderId
113+
{
114+
get
115+
{
116+
return this.folderId;
117+
}
118+
119+
set
120+
{
121+
this.folderId = value;
122+
}
123+
}
124+
125+
[XmlIgnore]
126+
[JsonIgnore]
127+
[Obsolete($"Deprecated in DotNetNuke 9.13.1. Use {nameof(IFolderPermissionInfo)}.{nameof(IFolderPermissionInfo.PortalId)} instead. Scheduled for removal in v11.0.0.")]
82128
public int PortalID
83129
{
84130
get
85131
{
86-
return this.portalID;
132+
return ((IFolderPermissionInfo)this).PortalId;
133+
}
134+
135+
set
136+
{
137+
((IFolderPermissionInfo)this).PortalId = value;
138+
}
139+
}
140+
141+
[XmlIgnore]
142+
[JsonIgnore]
143+
[Obsolete($"Deprecated in DotNetNuke 9.13.1. Use {nameof(IFolderPermissionInfo)}.{nameof(IFolderPermissionInfo.PortalId)} instead. Scheduled for removal in v11.0.0.")]
144+
int IFolderPermissionInfo.PortalId
145+
{
146+
get
147+
{
148+
return this.portalId;
87149
}
88150

89151
set
90152
{
91-
this.portalID = value;
153+
this.portalId = value;
92154
}
93155
}
94156

@@ -114,12 +176,12 @@ public int KeyID
114176
{
115177
get
116178
{
117-
return this.FolderPermissionID;
179+
return ((IFolderPermissionInfo)this).FolderPermissionId;
118180
}
119181

120182
set
121183
{
122-
this.FolderPermissionID = value;
184+
((IFolderPermissionInfo)this).FolderPermissionId = value;
123185
}
124186
}
125187

@@ -128,10 +190,12 @@ public int KeyID
128190
public void Fill(IDataReader dr)
129191
{
130192
this.FillInternal(dr);
131-
this.FolderPermissionID = Null.SetNullInteger(dr["FolderPermissionID"]);
132-
this.FolderID = Null.SetNullInteger(dr["FolderID"]);
133-
this.PortalID = Null.SetNullInteger(dr["PortalID"]);
134-
this.FolderPath = Null.SetNullString(dr["FolderPath"]);
193+
194+
var @this = (IFolderPermissionInfo)this;
195+
@this.FolderPermissionId = Null.SetNullInteger(dr["FolderPermissionID"]);
196+
@this.FolderId = Null.SetNullInteger(dr["FolderID"]);
197+
@this.PortalId = Null.SetNullInteger(dr["PortalID"]);
198+
@this.FolderPath = Null.SetNullString(dr["FolderPath"]);
135199
}
136200
}
137201
}

DNN Platform/Library/Services/FileSystem/FolderManager.cs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ namespace DotNetNuke.Services.FileSystem
1717
using System.Threading;
1818
using System.Web;
1919

20+
using DotNetNuke.Abstractions.Security.Permissions;
2021
using DotNetNuke.Common;
2122
using DotNetNuke.Common.Utilities;
2223
using DotNetNuke.ComponentModel;
@@ -695,16 +696,14 @@ public virtual void CopyParentFolderPermissions(IFolderInfo folder)
695696

696697
var parentFolderPath = folder.FolderPath.Substring(0, folder.FolderPath.Substring(0, folder.FolderPath.Length - 1).LastIndexOf("/", StringComparison.Ordinal) + 1);
697698

698-
foreach (FolderPermissionInfo objPermission in
699-
this.GetFolderPermissionsFromSyncData(folder.PortalID, parentFolderPath))
699+
foreach (IFolderPermissionInfo objPermission in this.GetFolderPermissionsFromSyncData(folder.PortalID, parentFolderPath))
700700
{
701-
var folderPermission = new FolderPermissionInfo(objPermission)
702-
{
703-
FolderID = folder.FolderID,
704-
RoleID = objPermission.RoleID,
705-
UserID = objPermission.UserID,
706-
AllowAccess = objPermission.AllowAccess,
707-
};
701+
var folderPermission = new FolderPermissionInfo(objPermission);
702+
IFolderPermissionInfo iFolderPermission = folderPermission;
703+
iFolderPermission.FolderId = folder.FolderID;
704+
iFolderPermission.RoleId = objPermission.RoleId;
705+
iFolderPermission.UserId = objPermission.UserId;
706+
iFolderPermission.AllowAccess = objPermission.AllowAccess;
708707
folder.FolderPermissions.Add(folderPermission, true);
709708
}
710709

DNN Platform/Modules/ResourceManager/Components/PermissionHelper.cs

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace Dnn.Modules.ResourceManager.Components
66
{
7-
using System.Collections;
87
using System.Collections.Generic;
98
using System.Linq;
109

@@ -173,13 +172,18 @@ public static IEnumerable<FolderPermissionInfo> AsFolderPermissions(this IEnumer
173172
{
174173
return permissions.SelectMany(
175174
p => p.Permissions,
176-
(p, permission) => new FolderPermissionInfo
175+
(p, permission) =>
177176
{
178-
AllowAccess = permission.AllowAccess,
179-
FolderID = folderId,
180-
PermissionID = permission.PermissionId,
181-
RoleID = p.RoleId,
182-
UserID = Null.NullInteger,
177+
var info = new FolderPermissionInfo
178+
{
179+
AllowAccess = permission.AllowAccess,
180+
};
181+
IFolderPermissionInfo iInfo = info;
182+
iInfo.FolderId = folderId;
183+
iInfo.PermissionId = permission.PermissionId;
184+
iInfo.RoleId = p.RoleId;
185+
iInfo.UserId = Null.NullInteger;
186+
return info;
183187
});
184188
}
185189

@@ -191,13 +195,18 @@ public static IEnumerable<FolderPermissionInfo> AsFolderPermissions(this IEnumer
191195
{
192196
return permissions.SelectMany(
193197
p => p.Permissions,
194-
(p, permission) => new FolderPermissionInfo
198+
(p, permission) =>
195199
{
196-
AllowAccess = permission.AllowAccess,
197-
FolderID = folderId,
198-
PermissionID = permission.PermissionId,
199-
RoleID = int.Parse(Globals.glbRoleNothing),
200-
UserID = p.UserId,
200+
var info = new FolderPermissionInfo
201+
{
202+
AllowAccess = permission.AllowAccess,
203+
};
204+
IFolderPermissionInfo iInfo = info;
205+
iInfo.FolderId = folderId;
206+
iInfo.PermissionId = permission.PermissionId;
207+
iInfo.RoleId = int.Parse(Globals.glbRoleNothing);
208+
iInfo.UserId = p.UserId;
209+
return info;
201210
});
202211
}
203212

@@ -233,9 +242,9 @@ public static Permissions GetFolderPermissions(
233242
permissions.EnsureRole(role, true, true);
234243
}
235244

236-
foreach (FolderPermissionInfo permission in collection)
245+
foreach (IFolderPermissionInfo permission in collection)
237246
{
238-
if (permission.UserID != Null.NullInteger)
247+
if (permission.UserId != Null.NullInteger)
239248
{
240249
permissions.AddUserPermission(permission);
241250
}

0 commit comments

Comments
 (0)