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.role;
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "owl-cli",
3
- "version": "6.2.0",
3
+ "version": "6.5.0",
4
4
  "main": "index.js",
5
5
  "preferGlobal": true,
6
6
  "bin": {