我创建了两个按钮,它们显示在“估计”中。一个按钮向所有人显示,当用户具有设定的角色时,另一个按钮显示。
form.addButton({id : 'button1', label : 'button1', functionName : "window.open('" + urlCallBack1 + "', '_blank')"});
var acceptedRoles = [ common.CONSTANTS.ROLES.TEAM_LEADER,
common.CONSTANTS.ROLES.ADMINISTRATOR ];
if(acceptedRoles.indexOf(userRole) > -1)
{
form.addButton({id : 'button2', label : 'button2', functionName : "window.open('" + urlCallBack2 + "', '_blank')"});
}
当我个人以任一角色登录到“估计”时,我会看到按钮。任何其他角色,我登录后都看不到button2。这是预期的行为。
但是,当具有组长角色的用户登录时,他们看到的是button1,但看不到的button2。相同的脚本同时包含两个按钮,因此这不是脚本本身的权限问题。
预期的行为::团队负责人登录后,可以在估算值上看到button2。
实际行为::团队负责人登录后,看不到估算的button2。
答案 0 :(得分:0)
您是否尝试过将“ userRole”变量显式转换为整数值,以确保您的条件是比较两个相同类型的值?即在下面。
if(acceptedRoles.indexOf(parseInt(userRole)) > -1)
答案 1 :(得分:0)
您的脚本部署是否处于“测试”模式?如果是这样,该脚本将仅对脚本所有者执行。在这种情况下,可能就是你。
答案 2 :(得分:0)
我认为这与userRole的值不匹配acceptedRoles数组中的任何值有关。检查userRole的值,以及它是否与TEAM_LEADER的常量值匹配。
var acceptedRoles = [ 'TEAM_LEADER', 'ADMINISTRATOR' ];
var userRole = 'TEAM_LEADER';
if(acceptedRoles.indexOf(userRole) > -1) {
console.log('here');
}