Skip to content

Commit cb3eaff

Browse files
committed
New authentication method for services using an "Access Key" to overcome limitations in new DNN 7.2 services framework
1 parent d6538d7 commit cb3eaff

23 files changed

+196
-78
lines changed

App_LocalResources/LocalizationEditor.ascx.resx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,4 +217,13 @@
217217
<data name="SendToService.Text" xml:space="preserve">
218218
<value>Send to Update Service</value>
219219
</data>
220+
<data name="AccessKeys.Text" xml:space="preserve">
221+
<value>Access Keys</value>
222+
</data>
223+
<data name="ServiceUrl.Text" xml:space="preserve">
224+
<value>Service Url</value>
225+
</data>
226+
<data name="TranslatorAccess.Text" xml:space="preserve">
227+
<value>Translator Access</value>
228+
</data>
220229
</root>

Components/Data/DataProvider.vb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ Namespace Data
4141
#Region " Permission Methods "
4242
Public MustOverride Function GetPermission(ByVal UserId As Integer, ByVal Locale As String, ByVal ModuleId As Integer) As IDataReader
4343
Public MustOverride Function GetPermissions(ByVal ModuleId As Integer) As IDataReader
44+
Public MustOverride Function GetPermissionById(permissionId As Integer) As IDataReader
4445
#End Region
4546

4647
#Region " Statistic Methods "
-290 Bytes
Binary file not shown.

Components/Data/SqlDataProvider.vb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ Namespace Data
7070
Return CType(SqlHelper.ExecuteReader(ConnectionString, DatabaseOwner & ObjectQualifier & ModuleQualifier & "GetPermissions", ModuleId), IDataReader)
7171
End Function
7272

73+
Public Overrides Function GetPermissionById(permissionId As Integer) As IDataReader
74+
Return CType(SqlHelper.ExecuteReader(ConnectionString, DatabaseOwner & ObjectQualifier & ModuleQualifier & "GetPermissionById", permissionId), IDataReader)
75+
End Function
76+
7377
#End Region
7478

7579
#Region " Statistics Methods "
-630 Bytes
Binary file not shown.
292 Bytes
Binary file not shown.
170 Bytes
Binary file not shown.

Components/Entities/Permissions/PermissionsController.vb

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,27 @@ Imports DotNetNuke.Common.Utilities
2323
Namespace Entities.Permissions
2424

2525
Public Class PermissionsController
26+
2627
Public Shared Function GetPermission(ByVal UserId As Integer, ByVal Locale As String, ByVal ModuleId As Integer) As PermissionInfo
2728
Return CType(CBO.FillObject(DataProvider.Instance().GetPermission(UserId, Locale, ModuleId), GetType(PermissionInfo)), PermissionInfo)
2829
End Function
2930

30-
Public Shared Function GetPermissions(ByVal ModuleId As Integer) As ArrayList
31-
Return CBO.FillCollection(DataProvider.Instance().GetPermissions(ModuleId), GetType(PermissionInfo))
31+
Public Shared Function GetPermissions(ByVal ModuleId As Integer) As List(Of PermissionInfo)
32+
Return GetPermissions(ModuleId, False)
33+
End Function
34+
35+
Public Shared Function GetPermissions(ByVal ModuleId As Integer, refreshCache As Boolean) As List(Of PermissionInfo)
36+
Dim cacheKey As String = "LEPermissions" & ModuleId.ToString
37+
Dim res As List(Of PermissionInfo) = CType(DotNetNuke.Common.Utilities.DataCache.GetCache(cacheKey), List(Of PermissionInfo))
38+
If res Is Nothing Or refreshCache Then
39+
res = CBO.FillCollection(Of PermissionInfo)(DataProvider.Instance().GetPermissions(ModuleId))
40+
DotNetNuke.Common.Utilities.DataCache.SetCache(cacheKey, res)
41+
End If
42+
Return res
43+
End Function
44+
45+
Public Shared Function GetPermissionById(permissionId As Integer) As PermissionInfo
46+
Return CType(CBO.FillObject(DataProvider.Instance().GetPermissionById(permissionId), GetType(PermissionInfo)), PermissionInfo)
3247
End Function
3348

3449
Public Shared Function HasAccess(ByVal user As UserInfo, ByVal AdminRole As String, ByVal ModuleId As Integer, ByVal Locale As String) As Boolean
202 Bytes
Binary file not shown.

Components/ModuleBase.vb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,14 @@ Public Class ModuleBase
6464
End Sub
6565
#End Region
6666

67+
#Region " Public Methods "
68+
Public Function LocalizeJSString(resourceKey As String) As String
69+
Return DotNetNuke.UI.Utilities.ClientAPI.GetSafeJSString(LocalizeString(resourceKey))
70+
End Function
71+
72+
Public Function LocalizeJSString(resourceKey As String, resourceFile As String) As String
73+
Return DotNetNuke.UI.Utilities.ClientAPI.GetSafeJSString(DotNetNuke.Services.Localization.Localization.GetString(resourceKey, resourceFile))
74+
End Function
75+
#End Region
76+
6777
End Class

0 commit comments

Comments
 (0)