function paramToString(v) {
return v == null ? null: v.toString();
};
function main(spreadsheetReport, ruleName, params) {
//debugger;
if (ruleName != "按角色跳转") return;
// 判断当前用户所属角色,跳转到不同的报表
if (currentUserHasRole("角色1")) {
jump_role1(spreadsheetReport, ruleName, params);
} else if (currentUserHasRole("角色2")) {
jump_role2(spreadsheetReport, ruleName, params);
} else {
alert("当前用户不能跳转到任何报表!");
}
};
// 如果当前用户拥有角色1,则跳转到报表1
function jump_role1(spreadsheetReport, ruleName, params) {
var paramsInfo = [];
paramsInfo.push({
name: "五级分类",
value: paramToString(params[0]),
displayValue: paramToString(params[0])
});
//@smartbi.openOtherPage:"I402881eb0c9787c2014f8c9fb57300a5"
openURL("openresource.jsp?resid=I402881eb0c9787c2014f8c9fb57300a5&showtoolbar=true&refresh=true", [{
name: "paramsInfo",
value: lang.toJSONString(paramsInfo)
}])
};
// 如果当前用户拥有角色2,则跳转到报表2
function jump_role2(spreadsheetReport, ruleName, params) {
var paramsInfo = [];
paramsInfo.push({
name: "五级分类",
value: paramToString(params[0]),
displayValue: paramToString(params[0])
});
//@smartbi.openOtherPage:"I402881eb0c9787c2014f8ca0925c00e7"
openURL("openresource.jsp?resid=I402881eb0c9787c2014f8ca0925c00e7&showtoolbar=true&refresh=true", [{
name: "paramsInfo",
value: lang.toJSONString(paramsInfo)
}])
};
//判断当前用户是否拥有某角色
function currentUserHasRole(roleName) {
//debugger;
var UserService = imports("bof.usermanager.UserService").getInstance();
var userId = UserService.getCurrentUser().id;
if (UserService.isAdmin(userId)) { // 如果是管理员则不判断角色
return true;
}
// 获取角色ID值
var role = UserService.getRoleByName(roleName);
if (!role || !role.id) {
return false;
}
var retVal = UserService.hasRoleByUserId(userId, role.id);
return retVal;
};