我创建了两个按钮,显示在Estimate上。当用户具有设定角色时,一个按钮向所有人显示,另一个按钮显示。
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')"});
}
当我亲自前往以任一角色登录的Estimate时,我会看到按钮。任何其他角色,我登录都看不到button2。这是预期的行为。
但是,当具有团队领导角色的用户登录时,他们会看到button1但看不到button2。相同的脚本提供两个按钮,因此它不是脚本本身的权限问题。
预期行为:当团队领导登录时,他们可以在估计值上看到button2。
实际行为:当团队领导登录时,他们无法在估计值上看到button2。
您是否尝试将'userRole'变量显式转换为整数值以确保您的条件是比较两个相同类型的值?我在下面。
if(acceptedRoles.indexOf(parseInt(userRole)) > -1)
您的脚本部署是否处于测试模式?如果是,则该脚本仅对脚本所有者执行。在这种情况下可能你。
我认为这与userRole的值不匹配acceptedRoles数组中的任何值都有关。检查userRole的值以及它是否与TEAM_LEADER的常量值匹配。
var acceptedRoles = [ 'TEAM_LEADER', 'ADMINISTRATOR' ];
var userRole = 'TEAM_LEADER';
if(acceptedRoles.indexOf(userRole) > -1) {
console.log('here');
}