2016-03-21 9 views
1

ユーザーの役割に基づいて特定の支払い方法を表示/非表示にしたいと考えています。DNN Hotcakes Checkoutビューのアクセスロール

"_DisplayPaymentMethods"ビューセットのHotcakesには、式として "payMethod.MethodId"というswitch文があります。それぞれのケースの中で、現在のユーザーに "x"ロールがあるかどうかを調べるifステートメントを設定したいと思います。

このビューセットからユーザーロールにアクセスするにはどうすればよいですか。

答えて

1

あなたはfind the answer in the Hotcakes Commerce documentation areaになります。私はあまりにも後世のためにそれをここに含めました。

セキュリティロールは、Webサイトの電子商取引とCMSの両方で多数の目的で使用されます。場合によっては、これらのロールを再利用して、ビューで動的なことを行うこともできます。 1つの例として、カートに追加ボタンを特定の役割にのみ表示することがあります。この例では、このユースケースを使用します。

まず、プランが必要です。このプランでは、カートに追加ボタンを、ログインしているすべてのユーザーと「VIP-Customer」セキュリティロールの一部に利用できるようにします。 (これは組み込みの役割ではなく、このコードサンプル用に作成されています。必要な役割を作成して使用できます)。

必要なビューのヘッダー領域に以下のコードを追加します_ProductDetails.cshtmlビューなど、編集する

@functions 
{ 

    private bool IsVipCustomer() 
    { 
     var customer = DotNetNuke.Entities.Users.UserController.Instance.GetCurrentUserInfo(); 
     if (customer != null && customer.UserID > 0) 
     { 
      return customer.IsInRole("VIP-Customer") || customer.IsInRole("Administrators"); 
     } 

     return false; 
    } 

} 

次のコードサンプルでは、​​役割が期待どおりのものかどうかを確認しています。表示されている場合は、カートに追加ボタンを表示します。上記のコードを同じビューファイルに作成している限り、このコードを任意の場所に追加して使用することができます。

@if (IsVipCustomer()) 
{ 
    <input type="submit" id="addtocartbutton" value="@Localization.GetString("AddToCart")" class="dnnPrimaryAction largeButton fullCartButton" /> 
} 

私たちは、これがCMSでセキュリティロールを伴うビューの動的な何かを行うためのベースラインの例として役立ちます願っています。