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