问题
如何根据用户的角色或组隐藏或显示HTML ?
回答
免责声明:本文仅用于教学目的。亚博Zendesk不支持或保证该代码。请在评论区发表你的任何问题,或者尝试在网上寻找解决方案。< / div >
<中心> < h1 >欢迎用户!> < / h1 > < /中心
<中心> < h1 >欢迎代理!> < / h1 > < /中心
<中心> < h1 >欢迎经理!> < / h1 > < /中心
< / div >
有关隐藏或显示HTML的信息,请参阅下面两个部分:
基于用户角色
基于用户组
隐藏或显示基于用户角色的HTML
如果您隐藏的信息是敏感的,这可能不是一个可行的解决方案,因为全文可以显示查看源在浏览器中。
但是,下面的示例代码将在帮助中心中实现截屏视频展示把它放在哪里。
< div class = "匿名”>
欢迎匿名用户!> < / h1 > < /中心
<中心> < h1 >欢迎用户!> < / h1 > < /中心
<中心> < h1 >欢迎代理!> < / h1 > < /中心
<中心> < h1 >欢迎经理!> < / h1 > < /中心
< / div >
在CSS模板下插入如下代码
/*隐藏特定角色的div
Div.anonymous, div.end_user, div.agent, div.manager {
显示:没有;
}
在JS模板下插入以下代码
//根据角色显示div html
如果(HelpCenter.user.role = =“匿名”){
$ (" div.anonymous "),告诉();
}
如果(HelpCenter.user.role = =“end_user”){
$ (" div.end_user "),告诉();
}
如果(HelpCenter.user.role = =“代理人”){
$ (" div.agent "),告诉();
}
如果(HelpCenter.user.role = =“经理”){
$ (" div.manager "),告诉();
}
隐藏或显示基于用户组的HTML
如果你想基于组显示/隐藏HTML,这个过程与上面相同。但是,在JS模板中,使用下面的代码。
var groups = HelpCenter.user.groups;
For (var I = 0;I < groups.length;我+ +){
if (groups[i].name == 'L2 Support' && groups[i]. if (groups[i].name == 'L2 Support' &&isActive == true) {
$ (" div.l2 "),告诉();
}
}
有关编辑帮助中心模板的详细信息,请参阅文章:自定义帮助中心主题(专业指南和企业指南).
请注意:默认情况下不提供jQuery。如果您想在主题中使用jQuery语句而不是普通的JavaScript,请确保导入了jQuery库。欲了解更多信息,请参阅文章:导入或升级jQuery.< / div >< / div >
14日的评论
你好罗恩,
您所需要做的就是将社区中所有主题的可见性设置为该内部用户段。
您可能需要在帮助中心上使用一些自定义代码隐藏到社区的链接,否则他们将单击它并显示为空社区。然后确保为员工提供与社区的直接链接,因为他们无法导航到社区。
嗨
我试图将此应用到哥本哈根2.9.0,其中不包含jquery。我需要添加jquery或有一个内部的方法来让这个工作吗?
你好,彼得——
可以将jQuery导入到您的主题中:导入或升级jQuery
希望有帮助!
嗨@……
我已经意识到了这一点,但问题是这是否可以避免。
我认为这意味着只有使用jQuery才有可能操作实体的样式属性,我不知道它们在DOM树中的位置。
所以,我将添加它,使食谱再次工作。
我建议更新这篇文章,以包括jQuery导入(以一种适用于所有情况的方式),以便使配方再次工作。
你的真的。
彼得
嗨,所有
我不想仅仅因为需要这个简单的功能就添加jQuery。
我的解决方案是:
注意,实际的显示属性值可能是不同的-我使用flexbox,所以“flex”是我需要的,如果你使用标准意味着它可能是“块”,“内联”甚至另一个值。
你的真正的
彼得
彼得,感谢你发布了你的解决方案,再次感谢你的提醒!我已经提醒了我们的团队,以便可以突出显示对jQuery的需求(以及到安装说明的链接)。
我们创造了一个阿伦分享的变种在这里.谢谢你!
我们只需要稍微调整一下…
我们可以在JS中调整什么,以允许我们隐藏除我们称为“Ticket_Access”的特定分段之外的所有人的内容。
分段用于识别用户组,并授予他们访问ZenDesk指南中不同类别/部分/文章的权限。亚博
我们希望能够将特定的用户添加到特定的分段(Ticket_Access),并基于特定的分段使内容可见或隐藏…
我们可以使用这段代码并稍微调整一下吗?
有人能帮我们一下吗?
如果您将小部件添加到您的产品中,您是否可以使用API仅向产品中具有Admin角色的特定用户显示?我知道Pendo可以做到这一点,但不知道这对于小部件是否可行。
嘿@……!
基于小部件的工作流是个好主意,至少应该可以从Guide角色中提取。您和您的团队可以添加一些小部件API命令就像捉迷藏一样默认情况下隐藏小部件,然后设置一个类似本文中讨论的Javascript条件。像这样的东西可以在你认为合适的时候进行一些调整:
对于像管理员这样的支持角色,您可以通过让所有管理员都成为同一组织的成员来实现超级接近。从那里,您可以设置自定义Javascript代码以从HelpCenter.user.organizations中提取。这样,如果某个用户的组织与您的管理员组织相匹配,您就可以为web小部件发出相同的“show”命令。
希望这能有所帮助!如果你还需要什么,请告诉我们。
谢谢@……,我们是否有可能使用我们的产品用户角色而不是帮助中心角色?
有办法让它对2或3个角色可见吗?我们希望公开我们的文章,但根据您的角色“隐藏”某些步骤。理论上,我们对公众隐藏的任何内容都应该对最终用户(签名者、代理和管理员)可见。
本质上,我们只需要为匿名者隐藏它。
通过向if()语句添加额外的逻辑,您可以调整示例JavaScript代码,以便基于多个组隐藏HTML。例如:
你好,
车把/ Curlybars问题:
我一直在网上搜索一个解决方案,以渲染内容与柄/卷条,而不是显示/隐藏与jQuery。这样做的原因是,我们可以根据用户角色保护信息,并只呈现所需的信息。
HelpCenter.user.role
并将其传递给.hbs模板以用于Handlebars helper ?任何帮助都将不胜感激。< / div >< / div >< / div >< / div >< / div >< / div >
或者,我喜欢使用自定义模板,但是Zendesk没有提供基于角色限制模板的方法。亚博这在路线图上吗?< / div >< / div >< / div >
对于那些想要一个自定义的Curlybars助手来渲染基于用户角色的内容/html的人。为这篇反馈文章投票.
请登录留下评论。
相关文章