resourceAuthory.js
14.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
/**
* hepo20170927
* 获取角色下某个节点下的子节点资源权限
*/
var listPrivilege=null;
var meettypelistPrivilege=null;
var roleMeetingTypePrivilege=null;
var isold=false;//是否是原规划OA公文标识
//获取设置界面权限
function getShowListPrivilege(data) {
if (!data)return null;
var map = {}
for(var i in data){
var priv = data[i];
for(var j in priv){
map[priv[j].id] = priv[j];
}
}
var index=0;
var temp = [];
for(var i in map){
temp[index] = map[i];
index ++;
}
return temp;
}
//获取各个类型会议权限
function getMeetTypePrivilege(data,roleMeetingTypePrivi) {
if (!data) return null;
if (!roleMeetingTypePrivi) return null;
var ret = {};
var roleMTypePrivi = roleMeetingTypePrivi["mapRelation"];
for (var typename in roleMTypePrivi){
//console.log(typename);
var privi = roleMTypePrivi[typename];
var map = {};
for (var roleId in privi){
//console.log(roleId);
if(!data[roleId]){
continue;
}
var privis = data[roleId];
for(var pri in privis){
map[privis[pri].id] = privis[pri];
}
}
var index = 0 ;
var temp = [];
for(var i in map){
temp[index] = map[i];
index ++;
}
ret[typename] = temp;
}
return ret;
}
function getRoleMeetingTypePrivilege(privilegename) {
var cacheListPrivilege = null;
if(!roles){
roles = "";
var userInfo=$.cookie('cookieuser');
userInfo=JSON.parse(userInfo);
var userid=userInfo.user.id;
var userdetail=getUserInfoByUserid(userid);
var role=userdetail.roles;
for(var i=0;i<role.length;i++){
roles+=role[i].id+",";
}
}
if(window.parent.globalLocalCache){
var obj = {roleids:roles,privilegename:privilegename};
cacheListPrivilege = window.parent.globalLocalCache.GetCacheResult(
CONF_MEETING_SERVERURL + global.modelctls.meeting.getRoleMeetingTypePrivilege,
obj,"");
}
if(cacheListPrivilege){
roleMeetingTypePrivilege=cacheListPrivilege;
return;
}
$.ajax({
type:"GET",
url: CONF_MEETING_SERVERURL + global.modelctls.meeting.getRoleMeetingTypePrivilege,
dataType:"json",
async:false,
data:{
roleids:roles,
privilegename : privilegename
},
success:function (data) {
roleMeetingTypePrivilege = data;
if(window.parent.globalLocalCache)
{
window.parent.globalLocalCache.AddCache(
CONF_MEETING_SERVERURL + global.modelctls.meeting.getRoleMeetingTypePrivilege,obj,"",data);
}
},
error: function(e){
console.log("获取会议类型权限出错");
}});
}
function getRoleChildrenPrivilegeEx(parent, children){
getRoleMeetingTypePrivilege(parent);
var userInfo=$.cookie('cookieuser');
userInfo=JSON.parse(userInfo);
var userid=userInfo.user.id;
var userdetail=getUserInfoByUserid(userid);
var role=userdetail.roles;
var roleIds="";
for(var i=0;i<role.length;i++){
roleIds+=role[i].id+",";
}
//加入前端缓存机制 杨亦乐 20180408
var cacheListPrivilege = null;
if(window.parent.globalLocalCache){
var obj = {roleid:roleIds,parent:parent};
if(children){
obj = {roleid:roleIds,parent:parent,children:children};
}
cacheListPrivilege = window.parent.globalLocalCache.GetCacheResult(
CONF_BACK_SERVERURL +"/mvc/privilege/user/load/getChildrenPrivilegeByRoleidAndParentEx.do",
obj,"");
}
if(cacheListPrivilege){
listPrivilege = getShowListPrivilege(cacheListPrivilege);
meettypelistPrivilege=getMeetTypePrivilege(cacheListPrivilege,roleMeetingTypePrivilege);
setControlerDisplay(listPrivilege);
return;
}
var url=CONF_BACK_SERVERURL +"/mvc/privilege/user/load/getChildrenPrivilegeByRoleidAndParentEx.do";
$.ajax({
type: "POST",
async: false,
dataType:'json',
url:url,
data:{roleid:roleIds,
parent:parent},
headers:{"token":$.cookie('ftoken')},
success:function (data) {
listPrivilege = getShowListPrivilege(data);
meettypelistPrivilege=getMeetTypePrivilege(data,roleMeetingTypePrivilege);
if(Object.keys(data).length>0){
var obj = {roleid:roleIds,
parent:parent};
if(children){ //hzw 修改 2018/3/7
listPrivilege = getPrivilegeId(data, children);
obj = {roleid:roleIds,
parent:parent,
children:children};
}else {
setControlerDisplay(listPrivilege);
}
if(window.parent.globalLocalCache)
{
window.parent.globalLocalCache.AddCache(
CONF_BACK_SERVERURL +"/mvc/privilege/user/load/getChildrenPrivilegeByRoleidAndParentEx.do",obj,"",data);
}
}
},error:function (){
console.log("失败")
}});
}
function getRoleChildrenPrivilege(parent, children){
var userInfo=$.cookie('cookieuser');
userInfo=JSON.parse(userInfo);
var userid=userInfo.user.id;
var userdetail=getUserInfoByUserid(userid);
var role=userdetail.roles;
var roleIds="";
for(var i=0;i<role.length;i++){
roleIds+=role[i].id+",";
}
//加入前端缓存机制 杨亦乐 20180408
var cacheListPrivilege = null;
if(window.parent.globalLocalCache){
var obj = {roleid:roleIds,parent:parent};
if(children){
obj = {roleid:roleIds,parent:parent,children:children};
}
cacheListPrivilege = window.parent.globalLocalCache.GetCacheResult(
CONF_BACK_SERVERURL +"/mvc/privilege/user/load/getChildrenPrivilegeByRoleidAndParent.do",
obj,"");
}
if(cacheListPrivilege){
listPrivilege=cacheListPrivilege;
setControlerDisplay(cacheListPrivilege);
return;
}
var url=CONF_BACK_SERVERURL +"/mvc/privilege/user/load/getChildrenPrivilegeByRoleidAndParent.do";
$.ajax({
type: "POST",
async: false,
dataType:'json',
url:url,
data:{roleid:roleIds,
parent:parent},
headers:{"token":$.cookie('ftoken')},
success:function (data) {
listPrivilege=data;
if(data.length>0){
var obj = {roleid:roleIds,
parent:parent};
if(children){ //hzw 修改 2018/3/7
listPrivilege = getPrivilegeId(data, children);
obj = {roleid:roleIds,
parent:parent,
children:children};
}else {
setControlerDisplay(listPrivilege);
}
if(window.parent.globalLocalCache)
{
window.parent.globalLocalCache.AddCache(
CONF_BACK_SERVERURL +"/mvc/privilege/user/load/getChildrenPrivilegeByRoleidAndParent.do",obj,"",listPrivilege);
}
}else{
saveAttachmentPrivilegeInWindowIfExist(listPrivilege);
}
},error:function (){
console.log("失败")
}});
}
//获取ID查询子节点的权限
function getPrivilegeId(data, children){
var result = [];
for(var i=0; i<data.length; i++){
if(data[i].alias == children){
result = formButtonPrilivege(data[i].id);
break;
}
}
return result;
}
function getUserInfoByUserid(userid){
var result=null;
if(parent.globalLocalCache)
{
result = parent.globalLocalCache.GetCacheResult(
CONF_OURP_SERVERURL + global.modelctls.user.getUsersInfoByUserid+"/"+userid,
"","");
}
if(result)
{
return result;
}
$.ajax({
type: "GET",
async: false,
dataType:'json',
headers:{
"token":$.cookie('ftoken')
},
contentType:"application/json",
url: CONF_OURP_SERVERURL + global.modelctls.user.getUsersInfoByUserid+"/"+userid,
crossDomain:true,
success:function(data, textStatus, jqXHR) {
result = data;
if(parent.globalLocalCache)
{
parent.globalLocalCache.AddCache(
CONF_OURP_SERVERURL + global.modelctls.user.getUsersInfoByUserid+"/"+userid,
"","",result);
}
},
error:function(jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
}
});
return result;
}
function setControlerDisplay(data){
saveAttachmentPrivilegeInWindowIfExist(data);
var resource;
var name;
var button_div=$(":button");
var div_div=$(".meetingType");
var stats = getQueryParams("stats");
var obj;
var notice_div=$(".notice");
//定义一个数组,存放所有权限名称
var aliaStr=[];
for(let i in data){
aliaStr.push(data[i].alias)
}
//根据权限判断会议项目查询时所能查询的会议类别(专用于会议项目查询,其他地方可无视)
if(aliaStr.indexOf("局长办公会")!=-1 && aliaStr.indexOf("规划业务专题会")!=-1){
proType=[''];
}else if(aliaStr.indexOf("局长办公会")!=-1 && aliaStr.indexOf("规划业务专题会")==-1){
proType=['局长办公会'];
$("#allmeet").css("display","none");
}else{
proType=['规划业务专题会'];
$("#allmeet").css("display","none");
}
//遍历div获取显示名为name的进行设置display(专用于会议项目查询,其他地方可无视)
for(var j=0;j<div_div.length;j++){
div_name=div_div[j];
for(var i=0;i<data.length;i++){
resource=data[i];
name=resource.alias;
if(name=="局长办公会"){
$("#jzbgh").css("display","inline-block");
}
if(name=="规划业务专题会"){
$("#ghywzth").css("display","inline-block");
}
if(name=="莲湖分局局长办公会"){
$("#lhfjhy").css("display","inline-block");
}
}
}
for(var j=0;j<notice_div.length;j++){
div_name=notice_div[j];
for(var i=0;i<data.length;i++){
resource=data[i];
name=resource.alias;
if(name=="全部"){//用于会议通知,部分用户可查询所有通知
$("#allNotice").css("display","inline-block");
}
}
}
//遍历所有button获取显示名为name的进行设置display
for(var j=0;j<button_div.length;j++){
button_name=button_div[j];
for(var i=0;i<data.length;i++){
resource=data[i];
name=resource.alias;
if(TrimStr(button_name.innerText)==name){//hyh 修改 加了去空格的方法 2017/10/18
isold==true?$(button_name).css("display","none"):$(button_name).css("display","inline-block").removeAttr("disabled");
//查询时控件不同 处理方式不同
if(name=="查询"||name=="模糊查询/查询所有会议"){//hyh 新增name=="模糊查询/查询所有会议"这个条件 207/10.18
obj=$(button_name).parent();
$(obj).css("display","inline-block");
}
// //查询局长办公会和规划业务专题会
// if(name=="局长办公会"||name=="规划业务专题会"){
// $(button_name).css("display","inline-block")
//
// }
//hzw 2018/3/9 新增 审批批接件时,不要显示取回和改派按钮
if(stats == "create") {
if(name=="取回" || name=="改派"){
$(button_name).css("display","none");
}
}else if(stats == "projecting") {
if(name=="网上报建" || name=="二次录入"){
$(button_name).css("display","none");
}
}
}
if((TrimStr(button_name.innerText) == "录入坐标" || TrimStr(button_name.innerText) == "修改坐标") && name == "坐标"){
$(button_name).css("display","inline-block");
$(button_name).removeAttr("disabled");
}
}
}
// console.log("ra" + new Date().getTime());
}
/**
* 查看数据中是否有操作附件的权限(上传文件,创建文件夹,删除附件)有就存到window中
* **/
function saveAttachmentPrivilegeInWindowIfExist(data){
var attachmentAuthority = {};
for(var item in data){
if(data[item].alias == "上传文件"){
window.uploadFilePrivilege = true;
}
if(data[item].alias == "创建文件夹"){
window.createFolderPrivilege = true;
}
if(data[item].alias == "附件_预览"){
attachmentAuthority.preview = true;
}
if(data[item].alias == "附件_下载"){
attachmentAuthority.download = true;
}
if(data[item].alias == "附件_编辑"){
attachmentAuthority.edit = true;
}
if(data[item].alias == "附件_删除"){
attachmentAuthority.delet = true;
}
}
window.attachmentAuthority = attachmentAuthority;
}
/**
* 根据查到的权限资源,匹配是否含有该表单
*/
function getFormPrivilegeByData(url){
if(url.indexOf("jzdb") != -1){
return 't0109_402883665ecb3e32015ecb7d9a4400ff'; // 收文详情页的标识
}
var resource;
var name;
var formUrl;
var flag=false;
var resourceid;
for(var i=0;i<listPrivilege.length;i++){
resource=listPrivilege[i];
name=resource.alias;
formUrl=resource.url;
if(url.indexOf(formUrl)!=-1){
resourceid=resource.id;
break;
}
}
return resourceid;
}
/**
* 加载表单详情按钮权限方法
* (根据父节点id获取下面的子节点权限)
*/
function formButtonPrilivege(parentResourceId){
var userInfo=$.cookie('cookieuser');
// var userInfo=globleUserinfo;
userInfo=JSON.parse(userInfo);
var userid=userInfo.user.id;
var userdetail=getUserInfoByUserid(userid);
var role=userdetail.roles;
var roleIds="";
for(var i=0;i<role.length;i++){
roleIds+=role[i].id+",";
}
var result = [];
var url=CONF_BACK_SERVERURL +"/mvc/privilege/user/load/getChildrenPrivilegeByParentid.do";
$.ajax({
type: "POST",
async: false,
dataType:'json',
url:url,
data:{parentResourceId:parentResourceId,
roleid:roleIds},
headers:{"token":$.cookie('ftoken')},
success:function (data) {
if(data.length>0){
var sources = data;
result[0] = sources[0];
//去重
for(var i in sources){
var item = sources[i];
var flag = false;
for(var j in result){
if(item.id == result[j].id){
flag = true;
}
}
if(flag == false){
result.push(item);
}
}
setControlerDisplay(result);
}
},error:function (){
console.log("失败")
}});
return result;
}
/**
* 清除空格
* hyh 新增 2017/10/18
*
* **/
function TrimStr(str){
return str.replace(/(^\s*)|(\s*$)/g, "");
}
function getQueryParams(name) {
if (!location.search) return null;
if (name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
} else {
var params = {};
var arr = location.search.substr(1).split('&');
for (var i = 0; i < arr.length; i++) {
var parr = arr[i].split('=');
params[parr[0]] = unescape(parr[1]);
}
return params;
}
};