ecology与FineReport实现权限控制和集成登录
整理人:隋东
一、利用ecology用户与角色实现报表查看权限控制
1、在报表设计器中添加服务器数据集,规则如下:
名称:login SQL:select loginid,password from hrmresource where loginid <> ''
名称:role SQL:select u.loginid,r.rolesmark from HrmResource u,HrmRoles
r,HrmRoleMembers ur where u.id=ur.resourceid and r.id=ur.roleid and u.loginid <> ''
2、在报表管理平台中配置相应数据集用户及角色权限,设置如下:
二、在ecology系统上实现与FineReport报表的集成登录
1、准备md5加密文件
将md5.js文件放在ecology登录页面同级文件夹中
2、在ecology登录页面中插入代码实现集成登录
1)在head之间插入如下脚本
//finereport报表集成登录脚本开始
function doSubmit() {
var username =document.getElementById("loginid").value;
var password =document.getElementById("userpassword").value;
password = hex_md5(password); //把密码md5小写32位加密
password = password.toUpperCase();//把密码小写字母转换成大写字母
var scr = document.createElement("iframe"); //创建iframe
scr.src = "/ReportServer?op=auth_login&fr_username=" + username + "&__redirect__=false&fr_password=" + password;
//alert(username+"---"+password); //调试用弹窗
if (scr.attachEvent){ //判断是否为ie浏览器
scr.attachEvent("onload", function(){ //如果为ie浏览器则页面加载完成后立即执行
var f = document.getElementById("form1"); //login是form的id
f.submit();
});
} else {
scr.onload = function(){ //其他浏览器则使用这种方法执行
var f = document.getElementById("form1");
f.submit();
};
}
document.getElementsByTagName("head")[0].appendChild(scr); //将iframe标签嵌入到head中
}
2)在登录按钮中加入脚本触发动作
或
注:input控件的type为button
下边为是实际做好的文件供参考