2016-03-21 9 views
1

G/kullanıcı rollerine dayalı olarak belirli ödeme yöntemlerini gizlemek göstermek edebilmek istiyorum Bakış. Ben ifade olarak "payMethod.MethodId" ile bir switch deyimi bakın "_DisplayPaymentMethods" görünümü kümesi altında Hotcakes yılında Erişim Rolleri

. Her davada, geçerli kullanıcının "x" rolüne sahip olup olmadığını kontrol eden bir if ifadesi ayarlamak istiyorum.

nasıl bu görünüm kümesinden kullanıcı rollerini erişebilir?

cevap

1

Sen find the answer in the Hotcakes Commerce documentation area olacak. Buraya, SO üzerinde de posterity için dahil ettim.

Güvenlik rolleri e-ticaret ve web sitenizin CMS parça hem de amaçları çok sayıda kullanılmaktadır. Zaman zaman, bu rolleri, görüşlerinizle dinamik bir şey yapmak için yeniden amaçlamak isteyebilirsiniz. Bir örnek, sadece Sepete Ekle düğmesini belirli bir role göstermek olabilir. Bu örnek için bu kullanım örneğini kullanacağız.

İlk olarak, bir plan gerekir. Bu planda, giriş yapan tüm kullanıcılar ve "VIP-Müşteri" güvenlik rolünün bir parçası olan Sepete Ekle düğmesini yapacağız. (Bu yerleşik bir rol değildir. Bu kod örneği için oluşturulmuştur. İstediğiniz tüm rolleri oluşturabilir ve kullanabilirsiniz.)

Aşağıdaki kodu, istediğiniz görünümün başlık alanına ekleyin. _ProductDetails.cshtml görünümü gibi düzenlemek.

@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; 
    } 

} 

Aşağıdaki kod örneğinde, rolün beklediklerimizle eşleşip eşleşmediğini kontrol ediyoruz. Varsa, Sepete Ekle düğmesini gösteririz. Bu kodu, aynı görüntüleme dosyasında oluşturduğumuz işlevi taşıdığı sürece istediğiniz yere ekleyebilir ve kullanabilirsiniz.

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

Biz bu CMS güvenlik roller içeren manzarasına sahip dinamik şey yapmak için bir temel örnek olarak size yardımcı olur umarım.