owl-cli 6.16.0 → 6.18.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.
|
@@ -4,23 +4,23 @@
|
|
|
4
4
|
//#import $owl_orgs:services/modelService.jsx
|
|
5
5
|
//#import $owl_permission:services/modelService.jsx
|
|
6
6
|
|
|
7
|
-
function getParentOrgIds(orgId){
|
|
8
|
-
if(orgId=='0'){
|
|
7
|
+
function getParentOrgIds(orgId) {
|
|
8
|
+
if (orgId == '0') {
|
|
9
9
|
return ['0'];
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
var org = owl_orgsService.get(orgId);
|
|
13
|
-
if(org){
|
|
13
|
+
if (org) {
|
|
14
14
|
return org.parentPathIds;
|
|
15
15
|
}
|
|
16
16
|
return [orgId];
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
function checklogin(){
|
|
19
|
+
function checklogin() {
|
|
20
20
|
var magic = $.getSystemProperty("magic");
|
|
21
21
|
var magicParams = $.params.ma;
|
|
22
22
|
var m = '0';//默认是 平台
|
|
23
|
-
if(magic === magicParams){
|
|
23
|
+
if (magic === magicParams) {
|
|
24
24
|
//代表是内部操作
|
|
25
25
|
var user = {
|
|
26
26
|
uid: 'internal',
|
|
@@ -30,45 +30,42 @@ function checklogin(){
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
return user;
|
|
33
|
-
}
|
|
34
|
-
else{
|
|
33
|
+
} else {
|
|
35
34
|
var isid = SessionService.getSessionId(request);
|
|
36
35
|
var now = new Date().getTime();
|
|
37
36
|
var sessionId = 'owl_backend_session_' + isid;
|
|
38
37
|
var session = owl_backend_sessionService.get(sessionId);
|
|
39
|
-
if(session && session.lastModified > now - 7*24*3600*1000){
|
|
38
|
+
if (session && session.lastModified > now - 7 * 24 * 3600 * 1000) {
|
|
40
39
|
var loginUserId = session.userId
|
|
41
40
|
var roleId = session.roleId;
|
|
42
41
|
var orgId = session.orgId;
|
|
43
42
|
var orgIds = [orgId].concat(getParentOrgIds(orgId));
|
|
44
|
-
if(loginUserId){
|
|
43
|
+
if (loginUserId) {
|
|
45
44
|
var env = {
|
|
46
45
|
now: new Date().getTime(),
|
|
47
46
|
loginId: loginUserId,
|
|
48
|
-
shopId:m,
|
|
49
|
-
warehouseId:"",
|
|
50
|
-
roleId:roleId,
|
|
51
|
-
orgId:orgId,
|
|
52
|
-
orgIds:orgIds,
|
|
53
|
-
m:m
|
|
47
|
+
shopId: m,
|
|
48
|
+
warehouseId: "",
|
|
49
|
+
roleId: roleId,
|
|
50
|
+
orgId: orgId,
|
|
51
|
+
orgIds: orgIds,
|
|
52
|
+
m: m
|
|
54
53
|
}
|
|
55
54
|
return env;
|
|
56
|
-
}
|
|
57
|
-
else{
|
|
55
|
+
} else {
|
|
58
56
|
var ret = {
|
|
59
|
-
state:'err',
|
|
60
|
-
code:'no login',
|
|
61
|
-
msg:"not login!"
|
|
57
|
+
state: 'err',
|
|
58
|
+
code: 'no login',
|
|
59
|
+
msg: "not login!"
|
|
62
60
|
}
|
|
63
61
|
out.print(JSON.stringify(ret));
|
|
64
62
|
return null;
|
|
65
63
|
}
|
|
66
|
-
}
|
|
67
|
-
else{
|
|
64
|
+
} else {
|
|
68
65
|
var ret = {
|
|
69
|
-
state:'err',
|
|
70
|
-
code:'no login',
|
|
71
|
-
msg:"not login!"
|
|
66
|
+
state: 'err',
|
|
67
|
+
code: 'no login',
|
|
68
|
+
msg: "not login!"
|
|
72
69
|
}
|
|
73
70
|
out.print(JSON.stringify(ret));
|
|
74
71
|
return null;
|
|
@@ -76,42 +73,87 @@ function checklogin(){
|
|
|
76
73
|
}
|
|
77
74
|
}
|
|
78
75
|
|
|
79
|
-
function getPermissions(roleId,tableId){
|
|
76
|
+
function getPermissions(roleId, tableId) {
|
|
80
77
|
var searchArgs = {
|
|
81
|
-
roleId:roleId,
|
|
82
|
-
tableId:tableId
|
|
78
|
+
roleId: roleId,
|
|
79
|
+
tableId: tableId
|
|
83
80
|
}
|
|
84
|
-
var sr = owl_permissionService.search("0",searchArgs,null,0,10000,null);
|
|
85
|
-
if(sr.state==='ok'){
|
|
81
|
+
var sr = owl_permissionService.search("0", searchArgs, null, 0, 10000, null);
|
|
82
|
+
if (sr.state === 'ok') {
|
|
86
83
|
return sr.list;
|
|
87
84
|
}
|
|
88
85
|
return [];
|
|
89
86
|
}
|
|
90
87
|
|
|
91
|
-
function
|
|
88
|
+
function expandTablePermission(permissions) {
|
|
89
|
+
var same_org = {
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
var sub_org = {
|
|
93
|
+
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
for (var i = 0; i < permissions.length; i++) {
|
|
97
|
+
var p = permissions[i];
|
|
98
|
+
if(same_org.read!='denied' && p.same_org.read){
|
|
99
|
+
same_org.read = p.same_org.read;
|
|
100
|
+
}
|
|
101
|
+
if(same_org.update!='denied' && p.same_org.update){
|
|
102
|
+
same_org.update = p.same_org.update;
|
|
103
|
+
}
|
|
104
|
+
if(same_org.del!='denied' && p.same_org.del){
|
|
105
|
+
same_org.del = p.same_org.del;
|
|
106
|
+
}
|
|
107
|
+
if(same_org.add!='denied' && p.same_org.add){
|
|
108
|
+
same_org.add = p.same_org.add;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
if(sub_org.read!='denied' && p.sub_org.read){
|
|
113
|
+
sub_org.read = p.sub_org.read;
|
|
114
|
+
}
|
|
115
|
+
if(sub_org.update!='denied' && p.sub_org.update){
|
|
116
|
+
sub_org.update = p.sub_org.update;
|
|
117
|
+
}
|
|
118
|
+
if(sub_org.del!='denied' && p.sub_org.del){
|
|
119
|
+
same_org.del = p.same_org.del;
|
|
120
|
+
}
|
|
121
|
+
if(sub_orgadd!='denied' && p.sub_org.add){
|
|
122
|
+
sub_org.add = p.sub_org.add;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return {
|
|
127
|
+
same_org:same_org,
|
|
128
|
+
sub_org:sub_org
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function expandSectionPermission(permissions) {
|
|
92
134
|
var same_org = {
|
|
93
|
-
"*":"allowed"
|
|
135
|
+
"*": "allowed"
|
|
94
136
|
};
|
|
95
137
|
var sub_org = {
|
|
96
|
-
"*":"allowed"
|
|
138
|
+
"*": "allowed"
|
|
97
139
|
};
|
|
98
140
|
|
|
99
|
-
for(var i=0; i<permissions.length; i++){
|
|
141
|
+
for (var i = 0; i < permissions.length; i++) {
|
|
100
142
|
var p = permissions[i];
|
|
101
143
|
var sections_same_org = p.sections_same_org;
|
|
102
144
|
var sections_sub_org = p.sections_sub_org;
|
|
103
|
-
if(sections_same_org){
|
|
104
|
-
for(var j=0; j<sections_same_org.length; j++){
|
|
145
|
+
if (sections_same_org) {
|
|
146
|
+
for (var j = 0; j < sections_same_org.length; j++) {
|
|
105
147
|
var sec = sections_same_org[j];
|
|
106
|
-
if(sec.sectionKey){
|
|
148
|
+
if (sec.sectionKey) {
|
|
107
149
|
same_org[sec.sectionKey] = sec;
|
|
108
150
|
}
|
|
109
151
|
}
|
|
110
152
|
}
|
|
111
|
-
if(sections_sub_org){
|
|
112
|
-
for(var j=0; j<sections_sub_org.length; j++){
|
|
153
|
+
if (sections_sub_org) {
|
|
154
|
+
for (var j = 0; j < sections_sub_org.length; j++) {
|
|
113
155
|
var sec = sections_sub_org[j];
|
|
114
|
-
if(sec.sectionKey
|
|
156
|
+
if (sec.sectionKey) {
|
|
115
157
|
sub_org[sec.sectionKey] = sec;
|
|
116
158
|
}
|
|
117
159
|
}
|
|
@@ -119,35 +161,35 @@ function expandSectionPermission(permissions){
|
|
|
119
161
|
}
|
|
120
162
|
|
|
121
163
|
return {
|
|
122
|
-
same_org:same_org,
|
|
164
|
+
same_org: same_org,
|
|
123
165
|
sub_org: sub_org
|
|
124
166
|
}
|
|
125
167
|
}
|
|
126
168
|
|
|
127
|
-
function expandFieldPermission(permissions){
|
|
169
|
+
function expandFieldPermission(permissions) {
|
|
128
170
|
var same_org = {
|
|
129
|
-
"*":{read:"allowed"}
|
|
171
|
+
"*": {read: "allowed"}
|
|
130
172
|
}
|
|
131
173
|
var sub_org = {
|
|
132
|
-
"*":{read:"allowed"}
|
|
174
|
+
"*": {read: "allowed"}
|
|
133
175
|
}
|
|
134
|
-
for(var i=0; i<permissions.length; i++){
|
|
176
|
+
for (var i = 0; i < permissions.length; i++) {
|
|
135
177
|
var p = permissions[i];
|
|
136
|
-
if(p.fields_same_org){
|
|
137
|
-
for(var j=0; j<p.fields_same_org.length; j++){
|
|
178
|
+
if (p.fields_same_org) {
|
|
179
|
+
for (var j = 0; j < p.fields_same_org.length; j++) {
|
|
138
180
|
var f = p.fields_same_org[j];
|
|
139
181
|
var fieldKey = f.fieldKey;
|
|
140
|
-
if(f.sectionKey && f.sectionKey!='main'){
|
|
182
|
+
if (f.sectionKey && f.sectionKey != 'main') {
|
|
141
183
|
fieldKey = f.sectionKey + "." + f.fieldKey;
|
|
142
184
|
}
|
|
143
185
|
same_org[fieldKey] = f;
|
|
144
186
|
}
|
|
145
187
|
}
|
|
146
|
-
if(p.fields_sub_org){
|
|
147
|
-
for(var j=0; j<p.fields_sub_org.length; j++){
|
|
188
|
+
if (p.fields_sub_org) {
|
|
189
|
+
for (var j = 0; j < p.fields_sub_org.length; j++) {
|
|
148
190
|
var f = p.fields_sub_org[j];
|
|
149
191
|
var fieldKey = f.fieldKey;
|
|
150
|
-
if(f.sectionKey && f.sectionKey!='main'){
|
|
192
|
+
if (f.sectionKey && f.sectionKey != 'main') {
|
|
151
193
|
fieldKey = f.sectionKey + "." + f.fieldKey;
|
|
152
194
|
}
|
|
153
195
|
sub_org[fieldKey] = f;
|
|
@@ -155,21 +197,123 @@ function expandFieldPermission(permissions){
|
|
|
155
197
|
}
|
|
156
198
|
}
|
|
157
199
|
return {
|
|
158
|
-
same_org:same_org,
|
|
159
|
-
sub_org:sub_org
|
|
200
|
+
same_org: same_org,
|
|
201
|
+
sub_org: sub_org
|
|
160
202
|
}
|
|
161
203
|
}
|
|
162
|
-
|
|
163
|
-
|
|
204
|
+
|
|
205
|
+
function checkObject(obj, ef_field_permissions, parentKey,action){
|
|
206
|
+
for(var k in obj){
|
|
207
|
+
var ek = parentKey + "." + k;
|
|
208
|
+
if(ef_field_permissions && ef_field_permissions[ek] && ef_field_permissions[ek][action]==='denied'){
|
|
209
|
+
throw "没有"+action + "权限,ek=" + ek;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
function checkPermission(data, permissions, orgId, action) {
|
|
164
216
|
var section_permissions = expandSectionPermission(permissions);
|
|
165
217
|
var field_permissions = expandFieldPermission(permissions);
|
|
218
|
+
var table_permissions = expandTablePermission(permissions);
|
|
219
|
+
|
|
166
220
|
var ef_section_permissions = null;
|
|
167
221
|
var ef_field_permissions = null;
|
|
168
|
-
|
|
222
|
+
var ef_table_permissions = null;
|
|
223
|
+
if (data._orgId === orgId) {
|
|
169
224
|
ef_section_permissions = section_permissions.same_org;
|
|
170
225
|
ef_field_permissions = field_permissions.same_org;
|
|
226
|
+
ef_table_permissions = table_permissions.same_org;
|
|
227
|
+
} else {
|
|
228
|
+
ef_section_permissions = section_permissions.sub_org;
|
|
229
|
+
ef_field_permissions = field_permissions.sub_org;
|
|
230
|
+
ef_table_permissions = field_permissions.sub_org;
|
|
231
|
+
|
|
171
232
|
}
|
|
172
|
-
|
|
233
|
+
|
|
234
|
+
var valid_fields = ['_orgId', '_orgIds', "_v", "del"];
|
|
235
|
+
if(ef_table_permissions.add === 'denied'){
|
|
236
|
+
throw "表没有添加记录权限。"
|
|
237
|
+
}
|
|
238
|
+
//检查section_permission
|
|
239
|
+
for (var k in data) {
|
|
240
|
+
if(valid_fields.indexOf(k)>-1){
|
|
241
|
+
continue;
|
|
242
|
+
}
|
|
243
|
+
var v = data[k];
|
|
244
|
+
//if v is section
|
|
245
|
+
if (typeof v === 'object') {
|
|
246
|
+
//ef_field_permissions
|
|
247
|
+
if (ef_section_permissions && ef_section_permissions[k] && ef_section_permissions[k][action] === 'denied') {
|
|
248
|
+
throw "section没有" + action + "权限,sectionKey=" + k
|
|
249
|
+
}
|
|
250
|
+
if(Array.isArray(v)){
|
|
251
|
+
for(var i=0; i<v.length; i++){
|
|
252
|
+
var r = v[i];
|
|
253
|
+
checkObject(r,ef_field_permissions,k,action);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
else{
|
|
257
|
+
checkObject(v,ef_field_permissions,k,action);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
if(ef_section_permissions && ef_section_permissions[k] && ef_field_permissions[k].add === 'denied'){
|
|
262
|
+
throw "字段没有" + action + "权限, key=" + k
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
function checkUpdatePermission(data,diffresult,permissions,orgId){
|
|
270
|
+
var section_permissions = expandSectionPermission(permissions);
|
|
271
|
+
var field_permissions = expandFieldPermission(permissions);
|
|
272
|
+
var table_permissions = expandTablePermission(permissions);
|
|
273
|
+
|
|
274
|
+
var ef_section_permissions = null;
|
|
275
|
+
var ef_field_permissions = null;
|
|
276
|
+
var ef_table_permissions = null;
|
|
277
|
+
if (data._orgId === orgId) {
|
|
278
|
+
ef_section_permissions = section_permissions.same_org;
|
|
279
|
+
ef_field_permissions = field_permissions.same_org;
|
|
280
|
+
ef_table_permissions = table_permissions.same_org;
|
|
281
|
+
} else {
|
|
282
|
+
ef_section_permissions = section_permissions.sub_org;
|
|
283
|
+
ef_field_permissions = field_permissions.sub_org;
|
|
284
|
+
ef_table_permissions = field_permissions.sub_org;
|
|
285
|
+
}
|
|
286
|
+
if(ef_table_permissions.update === 'denied'){
|
|
287
|
+
throw "没有修改的权限。"
|
|
288
|
+
}
|
|
289
|
+
if(diffresult && diffresult.length>0){
|
|
290
|
+
for(var i=0; i<diffresult.length; i++){
|
|
291
|
+
var r = diffresult[i];
|
|
292
|
+
if(r.parentKey && r.parentKey.length>0){
|
|
293
|
+
if(ef_section_permissions[r.parentKey] && ef_section_permissions[r.parentKey].update ==='denied'){
|
|
294
|
+
throw "没有修改的权限,sectionKey=" + r.parentKey
|
|
295
|
+
}
|
|
296
|
+
else if(ef_field_permissions[r.parentKey+"." + r.fieldKey] &&ef_field_permissions[r.parentKey+"." + r.fieldKey.update]==='denied' ){
|
|
297
|
+
throw "没有修改字段的权限,fieldKey=" + r.parentKey+"." + r.fieldKey;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
//啥都不做代表检查通过
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
function filterFields(data, permissions, orgId) {
|
|
308
|
+
//根据权限,将没有读权限的字段删除掉
|
|
309
|
+
var section_permissions = expandSectionPermission(permissions);
|
|
310
|
+
var field_permissions = expandFieldPermission(permissions);
|
|
311
|
+
var ef_section_permissions = null;
|
|
312
|
+
var ef_field_permissions = null;
|
|
313
|
+
if (data._orgId === orgId) {
|
|
314
|
+
ef_section_permissions = section_permissions.same_org;
|
|
315
|
+
ef_field_permissions = field_permissions.same_org;
|
|
316
|
+
} else {
|
|
173
317
|
ef_section_permissions = section_permissions.sub_org;
|
|
174
318
|
ef_field_permissions = field_permissions.sub_org;
|
|
175
319
|
}
|
|
@@ -177,27 +321,26 @@ function filterFields(data,permissions,orgId){
|
|
|
177
321
|
var invisibleFields = [];
|
|
178
322
|
data['invisibleFields'] = invisibleFields;
|
|
179
323
|
|
|
180
|
-
var valid_fields = ['_orgId','_orgIds',"_v", "del"];
|
|
324
|
+
var valid_fields = ['_orgId', '_orgIds', "_v", "del"];
|
|
181
325
|
var curSectionKey = '';
|
|
182
|
-
for(var k in data){
|
|
183
|
-
if(valid_fields.indexOf(k)>=0){
|
|
326
|
+
for (var k in data) {
|
|
327
|
+
if (valid_fields.indexOf(k) >= 0) {
|
|
184
328
|
continue;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
((!ef_section_permissions[k] || !ef_section_permissions[k].read) && (ef_section_permissions["*"] && ef_section_permissions["*"].read === 'denied'))){
|
|
329
|
+
} else {
|
|
330
|
+
if (typeof data[k] === 'object') {
|
|
331
|
+
if ((ef_section_permissions[k] && ef_section_permissions[k].read === 'denied') ||
|
|
332
|
+
((!ef_section_permissions[k] || !ef_section_permissions[k].read) && (ef_section_permissions["*"] && ef_section_permissions["*"].read === 'denied'))) {
|
|
190
333
|
delete data[k];
|
|
191
334
|
invisibleFields.push(k);
|
|
192
335
|
}
|
|
193
336
|
var section = data[k];
|
|
194
|
-
if(Array.isArray(section)){
|
|
195
|
-
for(var i=0; i<section.length; i++){
|
|
337
|
+
if (Array.isArray(section)) {
|
|
338
|
+
for (var i = 0; i < section.length; i++) {
|
|
196
339
|
var r = section[i];
|
|
197
|
-
for(var fk in r){
|
|
198
|
-
var rk = k+ "." + fk;
|
|
199
|
-
if((ef_field_permissions[rk] && ef_field_permissions[rk].read === 'denied') ||
|
|
200
|
-
((!ef_field_permissions[rk] || !ef_field_permissions[rk].read) && (ef_field_permissions[k+".*"] && ef_field_permissions[k+".*"].read === 'denied'))){
|
|
340
|
+
for (var fk in r) {
|
|
341
|
+
var rk = k + "." + fk;
|
|
342
|
+
if ((ef_field_permissions[rk] && ef_field_permissions[rk].read === 'denied') ||
|
|
343
|
+
((!ef_field_permissions[rk] || !ef_field_permissions[rk].read) && (ef_field_permissions[k + ".*"] && ef_field_permissions[k + ".*"].read === 'denied'))) {
|
|
201
344
|
delete r[fk];
|
|
202
345
|
invisibleFields.push(rk);
|
|
203
346
|
}
|
|
@@ -205,9 +348,8 @@ function filterFields(data,permissions,orgId){
|
|
|
205
348
|
|
|
206
349
|
}
|
|
207
350
|
}
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
if((ef_field_permissions[k] && ef_field_permissions[k].read === 'denied') || ((!ef_field_permissions[k] || !ef_field_permissions[k].read) && ef_field_permissions["*"].read === 'denied')){
|
|
351
|
+
} else {
|
|
352
|
+
if ((ef_field_permissions[k] && ef_field_permissions[k].read === 'denied') || ((!ef_field_permissions[k] || !ef_field_permissions[k].read) && ef_field_permissions["*"].read === 'denied')) {
|
|
211
353
|
delete data[k];
|
|
212
354
|
invisibleFields.push(k);
|
|
213
355
|
}
|
|
@@ -218,3 +360,5 @@ function filterFields(data,permissions,orgId){
|
|
|
218
360
|
|
|
219
361
|
|
|
220
362
|
|
|
363
|
+
|
|
364
|
+
|
|
@@ -16,9 +16,13 @@ function isEqual(r1,r2){
|
|
|
16
16
|
if(r1==null || r2==null){
|
|
17
17
|
return false;
|
|
18
18
|
}
|
|
19
|
+
if(isScalar(r1) || isScalar(r2)){
|
|
20
|
+
return r1===r2;
|
|
21
|
+
}
|
|
19
22
|
//now assert a1!=null && r2!=null
|
|
20
23
|
var ks1 = Object.keys(r1);
|
|
21
24
|
var ks2 = Object.keys(r2);
|
|
25
|
+
|
|
22
26
|
if(ks1.length!==ks2.length){
|
|
23
27
|
return false;
|
|
24
28
|
}
|
|
@@ -35,6 +39,7 @@ function isEqual(r1,r2){
|
|
|
35
39
|
function diffArray(a1, a2,parentKey){
|
|
36
40
|
//a1是旧的,a2是新的
|
|
37
41
|
|
|
42
|
+
var temp_matched = [];
|
|
38
43
|
var result = [];
|
|
39
44
|
if(!a1){
|
|
40
45
|
a1 = [];
|
|
@@ -49,21 +54,39 @@ function diffArray(a1, a2,parentKey){
|
|
|
49
54
|
var r2 = a2[j];
|
|
50
55
|
if(isEqual(r1,r2)){
|
|
51
56
|
found = true;
|
|
52
|
-
r2
|
|
57
|
+
if(isScalar(r2)){
|
|
58
|
+
temp_matched.push(r2);
|
|
59
|
+
}
|
|
60
|
+
else{
|
|
61
|
+
r2._matched = true;
|
|
62
|
+
}
|
|
63
|
+
|
|
53
64
|
break;
|
|
54
65
|
}
|
|
55
66
|
}
|
|
56
67
|
if(!found){
|
|
57
68
|
//r1不存在于a2中,说明r1被删除了
|
|
58
|
-
|
|
59
|
-
|
|
69
|
+
result.push({
|
|
70
|
+
type:'deleted',
|
|
71
|
+
r:r1
|
|
72
|
+
});
|
|
60
73
|
}
|
|
61
74
|
}
|
|
62
75
|
for(var i=0; i<a2.length; i++){
|
|
63
76
|
r2 = a2[i];
|
|
64
|
-
if(
|
|
65
|
-
r2
|
|
66
|
-
|
|
77
|
+
if(isScalar(r2)){
|
|
78
|
+
if(temp_matched.indexOf(r2)==-1){
|
|
79
|
+
result.push({
|
|
80
|
+
type:'added',
|
|
81
|
+
r:r2
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else if(!r2._matched){
|
|
86
|
+
result.push({
|
|
87
|
+
type:'added',
|
|
88
|
+
r:r2
|
|
89
|
+
});
|
|
67
90
|
}
|
|
68
91
|
|
|
69
92
|
}
|
|
@@ -164,15 +187,15 @@ function diff(obj1, obj2,parentKey){
|
|
|
164
187
|
});
|
|
165
188
|
}
|
|
166
189
|
else{
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
190
|
+
for(var kv in v2){
|
|
191
|
+
result.push({
|
|
192
|
+
type:'added',
|
|
193
|
+
fieldKey : kv,
|
|
194
|
+
parentKey: parentKey+"." + k2,
|
|
195
|
+
oldv:null,
|
|
196
|
+
newv:v2[kv]
|
|
197
|
+
});
|
|
198
|
+
}
|
|
176
199
|
}
|
|
177
200
|
}
|
|
178
201
|
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
var id = modelObject.id;
|
|
30
30
|
var action = $.params.action;
|
|
31
31
|
var oldObj = @projectCodeService.get(id);
|
|
32
|
+
var roleId = env.roleId
|
|
32
33
|
if(orgId && oldObj && oldObj._orgIds){
|
|
33
34
|
//检查是否有权限修改
|
|
34
35
|
if(orgId!='0' && oldObj._orgIds.indexOf(orgId)===-1){
|
|
@@ -41,22 +42,32 @@
|
|
|
41
42
|
return;
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
|
-
|
|
45
|
-
|
|
45
|
+
var diffResult = {}
|
|
46
|
+
var tableId = 'owl_' + spec._t;
|
|
47
|
+
var permissions = getPermissions(roleId,tableId);
|
|
48
|
+
if (!id || action==='add') {
|
|
46
49
|
//adding
|
|
47
50
|
if(!modelObject._orgId){
|
|
48
51
|
modelObject._orgId = orgId;
|
|
49
52
|
}
|
|
50
53
|
modelObject._orgIds = [modelObject._orgId].concat(getParentOrgIds(modelObject._orgId));
|
|
51
54
|
modelObject.m = env.m;
|
|
55
|
+
|
|
56
|
+
//如果检查不通过,则会抛出异常
|
|
57
|
+
checkPermission(modelObject,permissions,orgId,"add");
|
|
52
58
|
var newdata = @projectCodeService.add( modelObject,env );
|
|
53
59
|
}
|
|
54
60
|
else {
|
|
55
61
|
modelObject._orgIds = [modelObject._orgId].concat(getParentOrgIds(modelObject._orgId));
|
|
62
|
+
diffResult = diff(oldObj,modelObject,"");
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
checkUpdatePermission(modelObject,diffResult,permissions,orgId);
|
|
66
|
+
|
|
56
67
|
var newdata = @projectCodeService.update( modelObject,env);
|
|
57
68
|
}
|
|
58
69
|
|
|
59
|
-
|
|
70
|
+
|
|
60
71
|
|
|
61
72
|
var ret = {
|
|
62
73
|
state: 'ok',
|