Kentico v9 转换和角色

Kentico v9 transformation and Roles

我有一个警报部分用中继器拉取项目。我的转换提取日期和副本并将它们显示在 UL 标签中。

我被要求做出更改,其中只有人们才能看到的特定警报是特定的 group/role。

我的想法是用复选框更改页面类型表单。在转换方面,我需要一个条件语句,其中复选框为真并且用户是特定角色的一部分。

我的转换目前是ASCX,如下:

<li><%# Eval("Alert") %></li>

我想是这样的

<% if ( checked = true && role = XX ) { <li>Eval("Alert")</li> } %>

我就是想不通条件语句。

您可以使用方法 CurrentUser.IsInRole(, )

我想到了类似的东西:

<%# (checked && CurrentUser.IsInRole("_everyone_", "corporate") ? Eval("DocumentName") : "empty") %>

大卫

我建议根据您的情况添加一些 CSS class:

<li class="<% if(Eval<bool>("FieldsName") &&
     CMS.Membership.MembershipContext.AuthenticatedUser.IsInRole("rolename", CMS.SiteProvider.SiteContext.CurrentSiteName);) {"alert"} %>">
    ....
</li>

将 "alert" class 添加到您的 li 后,您可以更改该项目的可见性、颜色或任何您需要的内容。

此方法需要ASPX转换。

用于Text/XML转换

{% if(checked == true && CurrentUser.IsInRole("MyRole")) {return "<li>" + Alert + "</li>"}  %}

ASCX

<%# If(CMS.Membership.MembershipContext.AuthenticatedUser.IsInRole("rolename", CMS.SiteProvider.SiteContext.CurrentSiteName) && Eval("checked") == true, "<li>" + Eval("Alert") + "</li>","") %>