访问DNN Hotcakes结帐视图中的角色

时间:2016-03-21 16:14:52

标签: e-commerce dotnetnuke

我希望能够根据用户角色显示/隐藏某些付款方式。

在“_DisplayPaymentMethods”视图集下的Hotcakes中,我看到一个带有“payMethod.MethodId”作为表达式的switch语句。在每个案例中,我想设置一个if语句来检查当前用户是否具有“x”角色。

如何从此视图集访问用户角色?

1 个答案:

答案 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中安全角色的视图执行任何动态操作。