【问题标题】:Access Roles in DNN Hotcakes Checkout ViewsDNN Hotcakes Checkout 视图中的访问角色
【发布时间】:2016-03-21 16:14:51
【问题描述】:

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

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

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

【问题讨论】:

    标签: e-commerce dotnetnuke


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-05
      • 1970-01-01
      相关资源
      最近更新 更多