我希望能够根据用户角色显示/隐藏某些付款方式。
在“_DisplayPaymentMethods”视图集下的Hotcakes中,我看到一个带有“payMethod.MethodId”作为表达式的switch语句。在每个案例中,我想设置一个if语句来检查当前用户是否具有“x”角色。
如何从此视图集访问用户角色?
答案 0 :(得分:1)
你find the answer in the Hotcakes Commerce documentation area。我也把它包含在SO中作为后代。
安全角色在网站的电子商务和CMS部分中用于多种用途。有时,您可能希望重新使用这些角色来对视图执行动态操作。一个示例可能是仅向特定角色显示“添加到购物车”按钮。我们将在这个例子中使用该用例。
首先,你需要一个计划。在此计划中,我们将向所有登录的人员和“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中安全角色的视图执行任何动态操作。