【发布时间】:2016-03-21 16:14:51
【问题描述】:
我希望能够根据用户角色显示/隐藏某些付款方式。
在“_DisplayPaymentMethods”视图集下的 Hotcakes 中,我看到一个以“payMethod.MethodId”作为表达式的 switch 语句。在每种情况下,我想设置一个 if 语句来检查当前用户是否具有“x”角色。
如何从该视图集中访问用户角色?
【问题讨论】:
标签: e-commerce dotnetnuke
我希望能够根据用户角色显示/隐藏某些付款方式。
在“_DisplayPaymentMethods”视图集下的 Hotcakes 中,我看到一个以“payMethod.MethodId”作为表达式的 switch 语句。在每种情况下,我想设置一个 if 语句来检查当前用户是否具有“x”角色。
如何从该视图集中访问用户角色?
【问题讨论】:
标签: e-commerce dotnetnuke
你会find the answer in the Hotcakes Commerce documentation area。我也将它包含在此处以供后代使用。
安全角色用于您网站的电子商务和 CMS 部分的多种用途。有时,您可能希望重新调整这些角色的用途,以便对您的视图进行动态处理。一个示例可能是仅向特定角色显示“添加到购物车”按钮。我们将在本示例中使用该用例。
首先,您需要一个计划。在这个计划中,我们将让所有登录的人以及“VIP-客户”安全角色的一部分人都可以使用“添加到购物车”按钮。 (这不是内置角色。它是为本代码示例组成的。您可以创建和使用您想要的任何角色。)
将以下代码添加到要编辑的视图的标题区域,例如 _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 中的安全角色的视图执行任何动态操作。
【讨论】: