owl-cli 6.37.0 → 6.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -76,23 +76,26 @@ function checklogin() {
|
|
|
76
76
|
function getPermissions(roleId, tableId) {
|
|
77
77
|
var searchArgs = {
|
|
78
78
|
roleId: roleId,
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
tables:{
|
|
80
|
+
type:"or",
|
|
81
|
+
args:[
|
|
82
|
+
{ tableId: tableId},
|
|
83
|
+
{ tableId: "*"}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
var sr = owl_permissionService.search("0", searchArgs, null, 0, 10000, null);
|
|
88
|
+
if (sr.state === 'ok') {
|
|
83
89
|
return sr.list;
|
|
84
|
-
|
|
85
|
-
|
|
90
|
+
}
|
|
91
|
+
return [];
|
|
86
92
|
}
|
|
87
93
|
|
|
88
94
|
function expandTablePermission(permissions) {
|
|
89
95
|
// $.log("expandTablePermission,permissions=" + JSON.stringify(per?missions))
|
|
90
|
-
var same_org = {
|
|
91
|
-
};
|
|
96
|
+
var same_org = {};
|
|
92
97
|
|
|
93
|
-
var sub_org = {
|
|
94
|
-
|
|
95
|
-
};
|
|
98
|
+
var sub_org = { };
|
|
96
99
|
|
|
97
100
|
for (var i = 0; i < permissions.length; i++) {
|
|
98
101
|
var p = permissions[i];
|
|
@@ -111,6 +114,9 @@ function expandTablePermission(permissions) {
|
|
|
111
114
|
if(same_org.list!='denied' && p.permission_same_org && p.permission_same_org.list){
|
|
112
115
|
same_org.list = p.permission_same_org.add;
|
|
113
116
|
}
|
|
117
|
+
if(same_org.listall!='denied' && p.permission_same_org && p.permission_same_org.listall){
|
|
118
|
+
same_org.listall = p.permission_same_org.add;
|
|
119
|
+
}
|
|
114
120
|
|
|
115
121
|
if(sub_org.read!='denied' && p.permission_sub_org && p.permission_sub_org.read){
|
|
116
122
|
sub_org.read = p.permission_sub_org.read;
|
|
@@ -127,6 +133,9 @@ function expandTablePermission(permissions) {
|
|
|
127
133
|
if(sub_org.list!='denied' && p.permission_sub_org && p.permission_sub_org.list){
|
|
128
134
|
sub_org.list = p.permission_sub_org.list;
|
|
129
135
|
}
|
|
136
|
+
if(sub_org.listall!='denied' && p.permission_sub_org && p.permission_sub_org.listall){
|
|
137
|
+
sub_org.listall = p.permission_sub_org.listall;
|
|
138
|
+
}
|
|
130
139
|
}
|
|
131
140
|
|
|
132
141
|
return {
|
|
@@ -518,82 +527,186 @@ function merge(oldObj,newObj,permissions,orgId){
|
|
|
518
527
|
|
|
519
528
|
}
|
|
520
529
|
|
|
521
|
-
function
|
|
522
|
-
//获得有权限的对象的filter
|
|
523
|
-
var tp = expandTablePermission(permissions);
|
|
524
|
-
// $.log("tp=" + JSON.stringify(tp));
|
|
530
|
+
function getObjectPermissionFilter(tableId, roleId,orgId,userId){
|
|
525
531
|
var filters = [];
|
|
526
532
|
var excludeFilters = [];
|
|
527
533
|
|
|
528
|
-
|
|
529
|
-
if(tp.same_org.list==='allowed' && tp.sub_org.list==='denied' && orgId!='0') {
|
|
530
|
-
//只能读取本组织的数据
|
|
531
|
-
filters.push({"term": {"_orgId.keyword": orgId}});
|
|
532
|
-
}
|
|
533
|
-
else if(tp.same_org.list==='allowed' && tp.sub_org.list==='allowed' && orgId!='0'){
|
|
534
|
-
filters.push({"term": {"_orgIds.keyword": orgId}});
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
filters.concat([
|
|
534
|
+
filters = [
|
|
538
535
|
{
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
536
|
+
bool: {
|
|
537
|
+
filter:[
|
|
538
|
+
{term:{"permissions.orgId.keyword":orgId}},
|
|
539
|
+
{term:{"permissions.roleId.keyword":roleId}},
|
|
540
|
+
{term:{"permissions.list.keyword":"allowed"}}
|
|
541
|
+
]
|
|
542
|
+
}
|
|
542
543
|
},
|
|
543
544
|
{
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
545
|
+
bool: {
|
|
546
|
+
filter:[
|
|
547
|
+
{term:{"permissions.orgId.keyword":orgId}},
|
|
548
|
+
{term:{"permissions.roleId.keyword":"*"}},
|
|
549
|
+
{term:{"permissions.list.keyword":"allowed"}}
|
|
550
|
+
]
|
|
551
|
+
}
|
|
547
552
|
},
|
|
548
553
|
{
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
554
|
+
bool: {
|
|
555
|
+
filter:[
|
|
556
|
+
{term:{"permissions.orgId.keyword":"*"}},
|
|
557
|
+
{term:{"permissions.roleId.keyword":roleId}},
|
|
558
|
+
{term:{"permissions.list.keyword":"allowed"}}
|
|
559
|
+
]
|
|
560
|
+
}
|
|
552
561
|
},
|
|
553
562
|
{
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
563
|
+
bool: {
|
|
564
|
+
filter:[
|
|
565
|
+
{term:{"permissions.orgId.keyword":"*"}},
|
|
566
|
+
{term:{"permissions.roleId.keyword":"*"}},
|
|
567
|
+
{term:{"permissions.list.keyword":"allowed"}}
|
|
568
|
+
]
|
|
569
|
+
}
|
|
557
570
|
},
|
|
558
571
|
{
|
|
559
|
-
|
|
560
|
-
|
|
572
|
+
bool: {
|
|
573
|
+
filter:[
|
|
574
|
+
{term:{"permissions.userId.keyword":userId}},
|
|
575
|
+
{term:{"permissions.list.keyword":"allowed"}}
|
|
576
|
+
]
|
|
577
|
+
}
|
|
561
578
|
},
|
|
562
579
|
{
|
|
563
|
-
|
|
564
|
-
|
|
580
|
+
bool: {
|
|
581
|
+
filter:[
|
|
582
|
+
{term:{"permissions.userId.keyword":"*"}},
|
|
583
|
+
{term:{"permissions.list.keyword":"allowed"}}
|
|
584
|
+
]
|
|
585
|
+
}
|
|
565
586
|
}
|
|
566
|
-
]
|
|
587
|
+
];
|
|
567
588
|
//获取对象本身的权限
|
|
568
589
|
|
|
569
|
-
excludeFilters
|
|
590
|
+
excludeFilters= [
|
|
570
591
|
{
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
592
|
+
bool: {
|
|
593
|
+
filter:[
|
|
594
|
+
{term:{"permissions.orgId.keyword":orgId}},
|
|
595
|
+
{term:{"permissions.roleId.keyword":roleId}},
|
|
596
|
+
{term:{"permissions.list.keyword":"denied"}}
|
|
597
|
+
]
|
|
598
|
+
}
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
bool: {
|
|
602
|
+
filter:[
|
|
603
|
+
{term:{"permissions.orgId.keyword":orgId}},
|
|
604
|
+
{term:{"permissions.roleId.keyword":"*"}},
|
|
605
|
+
{term:{"permissions.list.keyword":"denied"}}
|
|
606
|
+
]
|
|
607
|
+
}
|
|
574
608
|
},
|
|
575
609
|
{
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
610
|
+
bool: {
|
|
611
|
+
filter:[
|
|
612
|
+
{term:{"permissions.orgId.keyword":"*"}},
|
|
613
|
+
{term:{"permissions.roleId.keyword":roleId}},
|
|
614
|
+
{term:{"permissions.list.keyword":"denied"}}
|
|
615
|
+
]
|
|
616
|
+
}
|
|
579
617
|
},
|
|
580
618
|
{
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
619
|
+
bool: {
|
|
620
|
+
filter:[
|
|
621
|
+
{term:{"permissions.orgId.keyword":"*"}},
|
|
622
|
+
{term:{"permissions.roleId.keyword":"*"}},
|
|
623
|
+
{term:{"permissions.list.keyword":"denied"}}
|
|
624
|
+
]
|
|
625
|
+
}
|
|
584
626
|
},
|
|
585
627
|
{
|
|
586
|
-
|
|
587
|
-
|
|
628
|
+
bool: {
|
|
629
|
+
filter:[
|
|
630
|
+
{term:{"permissions.userId.keyword":userId}},
|
|
631
|
+
{term:{"permissions.list.keyword":"denied"}}
|
|
632
|
+
]
|
|
633
|
+
}
|
|
634
|
+
},
|
|
635
|
+
{
|
|
636
|
+
bool: {
|
|
637
|
+
filter:[
|
|
638
|
+
{term:{"permissions.userId.keyword":"*"}},
|
|
639
|
+
{term:{"permissions.list.keyword":"denied"}}
|
|
640
|
+
]
|
|
641
|
+
}
|
|
588
642
|
}
|
|
589
|
-
]
|
|
643
|
+
];
|
|
644
|
+
return [filters,excludeFilters]
|
|
645
|
+
}
|
|
646
|
+
function getListPermissionFilter(tableId, roleId,orgId,userId, permissions){
|
|
647
|
+
if(userId==='0'){
|
|
648
|
+
return null;
|
|
649
|
+
}
|
|
650
|
+
//获得有权限的对象的filter
|
|
651
|
+
var tp = expandTablePermission(permissions);
|
|
652
|
+
// $.log("tp=" + JSON.stringify(tp));
|
|
653
|
+
var filters = [];
|
|
654
|
+
var excludeFilters = [];
|
|
590
655
|
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
656
|
+
//如果有listAll
|
|
657
|
+
|
|
658
|
+
if(tp.same_org.listall==='allowed' || tp.sub_org.listall==='allowed') {
|
|
659
|
+
//只能读取本组织的数据
|
|
660
|
+
var objFilters = getObjectPermissionFilter(tableId, roleId,orgId,userId, permissions);
|
|
661
|
+
var orgFilter = {
|
|
662
|
+
"term": {"_orgId.keyword": orgId}
|
|
663
|
+
};
|
|
664
|
+
if(tp.sub_org.listall==='allowed'){
|
|
665
|
+
if(orgId!='0'){
|
|
666
|
+
orgFilter = {
|
|
667
|
+
"term": {"_orgIds.keyword": orgId}
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
else{
|
|
671
|
+
orgFilter = { "match_all": {}};
|
|
672
|
+
}
|
|
595
673
|
}
|
|
596
|
-
|
|
674
|
+
if(tp.same_org.listall!=='allowed'){
|
|
675
|
+
orgFilter = {
|
|
676
|
+
bool:{
|
|
677
|
+
filter:[{
|
|
678
|
+
"term": {"_orgIds.keyword": orgId}
|
|
679
|
+
}],
|
|
680
|
+
must_not:[{
|
|
681
|
+
"term": {"_orgId.keyword": orgId}
|
|
682
|
+
}],
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
var shouldFilters = objFilters[0];
|
|
687
|
+
if(orgFilter){
|
|
688
|
+
shouldFilters.push(orgFilter);
|
|
689
|
+
}
|
|
690
|
+
//组合对象允许的
|
|
691
|
+
return {
|
|
692
|
+
bool:{
|
|
693
|
+
should:shouldFilters,
|
|
694
|
+
must_not:objFilters[1]
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
else {
|
|
699
|
+
var objFilters = getObjectPermissionFilter(tableId, roleId,orgId,userId, permissions);
|
|
700
|
+
|
|
701
|
+
return {
|
|
702
|
+
bool:{
|
|
703
|
+
should:objFilters[0],
|
|
704
|
+
must_not:objFilters[1]
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
|
|
597
710
|
}
|
|
598
711
|
|
|
599
712
|
|