4

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
4

1 に答える 1