我正在为 DNN 7.1+ 开发一个模块,我需要根据用户是否具有该模块的编辑权限来显示/隐藏模块中的链接。无论页面是否处于编辑模式,我都希望这种情况发生。
目前我在自定义模块页面加载事件的view.ascx中有以下代码:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Try
''other code goes here.......
If IsEditable = True Then
AdminEdit.Visible = True
Else
AdminEdit.Visible = False
End If
Catch exc As Exception
Exceptions.ProcessModuleLoadException(Me, exc)
End Try
End Sub
AdminEdit是我要隐藏的元素的 ID。此代码在页面处于编辑模式时有效,但我希望它始终可见,无论编辑模式如何,如果用户对该模块具有编辑权限。
现在,如果页面未处于编辑模式,则 IsEditbale 返回 false。
问题:如何在页面不处于编辑模式的情况下检查用户权限?
编辑:我也很乐意检查用户对包含模块的页面的编辑权限
解决方案:
多亏了 bdukes,我得到了以下结果:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Try
''display template selector if user has edit rights over module
If DotNetNuke.Security.Permissions.ModulePermissionController.CanEditModuleContent(Me.ModuleConfiguration) Then
AdminEdit.Visible = True
Else
AdminEdit.Visible = False
End If
Catch exc As Exception
Exceptions.ProcessModuleLoadException(Me, exc)
End Try
End Sub