owl-cli 6.2.0 → 6.5.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.
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
var warehouseId = env.warehouseId;
|
|
16
16
|
var m = shopId;
|
|
17
17
|
var roleId = env.roleId
|
|
18
|
+
var orgId = env.orgId;
|
|
18
19
|
|
|
19
20
|
var spec = @spec;
|
|
20
21
|
var tableId = 'owl_' + spec._t;
|
|
@@ -26,6 +27,10 @@
|
|
|
26
27
|
var id = params.id;
|
|
27
28
|
|
|
28
29
|
var obj = @projectCodeService.get(id,true);
|
|
30
|
+
if(roleId!='0' || orgId!='0'){
|
|
31
|
+
filterFields(obj,permissions,orgId);
|
|
32
|
+
}
|
|
33
|
+
|
|
29
34
|
var ret = {
|
|
30
35
|
state:'ok',
|
|
31
36
|
obj:obj
|
|
@@ -14,7 +14,6 @@ function getParentOrgIds(orgId){
|
|
|
14
14
|
return org.parentPathIds;
|
|
15
15
|
}
|
|
16
16
|
return [orgId];
|
|
17
|
-
|
|
18
17
|
}
|
|
19
18
|
|
|
20
19
|
function checklogin(){
|
|
@@ -39,14 +38,13 @@ function checklogin(){
|
|
|
39
38
|
var session = owl_backend_sessionService.get(sessionId);
|
|
40
39
|
if(session && session.lastModified > now - 7*24*3600*1000){
|
|
41
40
|
var loginUserId = session.userId
|
|
42
|
-
var roleId = session.
|
|
41
|
+
var roleId = session.roleId;
|
|
43
42
|
var orgId = session.orgId;
|
|
44
43
|
var orgIds = [orgId].concat(getParentOrgIds(orgId));
|
|
45
44
|
if(loginUserId){
|
|
46
45
|
var env = {
|
|
47
46
|
now: new Date().getTime(),
|
|
48
47
|
loginId: loginUserId,
|
|
49
|
-
roleId:roleId,
|
|
50
48
|
shopId:m,
|
|
51
49
|
warehouseId:"",
|
|
52
50
|
roleId:roleId,
|
|
@@ -90,6 +88,127 @@ function getPermissions(roleId,tableId){
|
|
|
90
88
|
return [];
|
|
91
89
|
}
|
|
92
90
|
|
|
91
|
+
function expandSectionPermission(permissions){
|
|
92
|
+
var same_org = {
|
|
93
|
+
"*":"allowed"
|
|
94
|
+
};
|
|
95
|
+
var sub_org = {
|
|
96
|
+
"*":"allowed"
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
for(var i=0; i<permissions.length; i++){
|
|
100
|
+
var p = permissions[i];
|
|
101
|
+
var sections_same_org = p.sections_same_org;
|
|
102
|
+
var sections_sub_org = p.sections_sub_org;
|
|
103
|
+
if(sections_same_org){
|
|
104
|
+
for(var j=0; j<sections_same_org.length; j++){
|
|
105
|
+
var sec = sections_same_org[j];
|
|
106
|
+
if(sec.sectionKey && sec.read){
|
|
107
|
+
same_org[sec.sectionKey] = sec.read;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if(sections_sub_org){
|
|
112
|
+
for(var j=0; j<sections_sub_org.length; j++){
|
|
113
|
+
var sec = sections_sub_org[j];
|
|
114
|
+
if(sec.sectionKey && sec.read){
|
|
115
|
+
sub_org[sec.sectionKey] = sec.read;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return {
|
|
122
|
+
same_org:same_org,
|
|
123
|
+
sub_org: sub_org
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function expandFieldPermission(permissions){
|
|
128
|
+
var same_org = {
|
|
129
|
+
"*":"allowed"
|
|
130
|
+
}
|
|
131
|
+
var sub_org = {
|
|
132
|
+
"*":"allowed"
|
|
133
|
+
}
|
|
134
|
+
for(var i=0; i<permissions.length; i++){
|
|
135
|
+
var p = permissions[i];
|
|
136
|
+
if(p.fields_same_org){
|
|
137
|
+
for(var j=0; j<p.fields_same_org.length; j++){
|
|
138
|
+
var f = p.fields_same_org[j];
|
|
139
|
+
var fieldKey = f.fieldKey;
|
|
140
|
+
if(f.sectionKey && f.sectionKey!='main'){
|
|
141
|
+
fieldKey = f.sectionKey + "." + f.fieldKey;
|
|
142
|
+
}
|
|
143
|
+
same_org[fieldKey] = f.read;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
if(p.fields_sub_org){
|
|
147
|
+
for(var j=0; j<p.fields_sub_org.length; j++){
|
|
148
|
+
var f = p.fields_sub_org[j];
|
|
149
|
+
var fieldKey = f.fieldKey;
|
|
150
|
+
if(f.sectionKey && f.sectionKey!='main'){
|
|
151
|
+
fieldKey = f.sectionKey + "." + f.fieldKey;
|
|
152
|
+
}
|
|
153
|
+
sub_org[fieldKey] = f.read;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
same_org:same_org,
|
|
159
|
+
sub_org:sub_org
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
}
|
|
164
|
+
function filterFields(data,permissions,orgId){
|
|
165
|
+
//根据权限,将没有权限的字段删除掉
|
|
166
|
+
var section_permissions = expandSectionPermission(permissions);
|
|
167
|
+
var field_permissions = expandFieldPermission(permissions);
|
|
168
|
+
var valid_fields = ['_orgId','_orgIds',"_v", "del"];
|
|
169
|
+
var curSectionKey = '';
|
|
170
|
+
for(var k in data){
|
|
171
|
+
if(valid_fields.indexOf(k)>=0){
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
174
|
+
else{
|
|
175
|
+
var ef_section_permissions = null;
|
|
176
|
+
var ef_field_permissions = null;
|
|
177
|
+
if(data._orgId === orgId){
|
|
178
|
+
ef_section_permissions = section_permissions.same_org;
|
|
179
|
+
ef_field_permissions = field_permissions.same_org;
|
|
180
|
+
}
|
|
181
|
+
else{
|
|
182
|
+
ef_section_permissions = section_permissions.sub_org;
|
|
183
|
+
ef_field_permissions = field_permissions.sub_org;
|
|
184
|
+
}
|
|
185
|
+
if(typeof data[k] === 'object'){
|
|
186
|
+
if(ef_section_permissions[k].read === 'denied' || (!ef_section_permissions[k].read && ef_section_permissions["*"].read === 'denied')){
|
|
187
|
+
delete data[k];
|
|
188
|
+
}
|
|
189
|
+
var section = data[k];
|
|
190
|
+
if(Array.isArray(section)){
|
|
191
|
+
for(var i=0; i<section.length; i++){
|
|
192
|
+
var r = section[i];
|
|
193
|
+
for(var fk in r){
|
|
194
|
+
var rk = k+ "." + fk;
|
|
195
|
+
if(ef_field_permissions[rk].read === 'denied' || (!ef_field_permissions[rk].read && ef_field_permissions[k+".*"].read === 'denied')){
|
|
196
|
+
delete r[rk];
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
if(ef_field_permissions[k].read === 'denied' || (!ef_field_permissions[k].read && ef_field_permissions["*"].read === 'denied')){
|
|
205
|
+
delete data[k];
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
}
|
|
93
212
|
|
|
94
213
|
|
|
95
214
|
|