update validate privilege (#201)
This commit is contained in:
parent
25f3a6535f
commit
45cc074e81
2 changed files with 57 additions and 9 deletions
|
|
@ -1999,11 +1999,29 @@ export class OrganizationController extends Controller {
|
||||||
if (isCurrentActive) {
|
if (isCurrentActive) {
|
||||||
if (profileAssign && _privilege.privilege !== "OWNER") {
|
if (profileAssign && _privilege.privilege !== "OWNER") {
|
||||||
if(_privilege.privilege == "NORMAL"){
|
if(_privilege.privilege == "NORMAL"){
|
||||||
_data.root = [profile.current_holders.find((x) => x.orgRevisionId === id)?.orgRootId];
|
const holder = profile.current_holders.find(x => x.orgRevisionId === id);
|
||||||
_data.child1 = [profile.current_holders.find((x) => x.orgRevisionId === id)?.orgChild1Id];
|
if (!holder) return;
|
||||||
_data.child2 = [profile.current_holders.find((x) => x.orgRevisionId === id)?.orgChild2Id];
|
_data.root = [holder.orgRootId];
|
||||||
_data.child3 = [profile.current_holders.find((x) => x.orgRevisionId === id)?.orgChild3Id];
|
_data.child1 = [holder.orgChild1Id];
|
||||||
_data.child4 = [profile.current_holders.find((x) => x.orgRevisionId === id)?.orgChild4Id];
|
_data.child2 = [holder.orgChild2Id];
|
||||||
|
_data.child3 = [holder.orgChild3Id];
|
||||||
|
_data.child4 = [holder.orgChild4Id];
|
||||||
|
}else if(_privilege.privilege == "CHILD"){
|
||||||
|
const holder = profile.current_holders.find(x => x.orgRevisionId === id);
|
||||||
|
if (!holder) return;
|
||||||
|
_data.root = [holder.orgRootId];
|
||||||
|
if (_privilege.root && _privilege.child1 === null) {
|
||||||
|
} else if (_privilege.child1 && _privilege.child2 === null) {
|
||||||
|
_data.child1 = [holder.orgChild1Id];
|
||||||
|
} else if (_privilege.child2 && _privilege.child3 === null) {
|
||||||
|
_data.child1 = [holder.orgChild1Id];
|
||||||
|
_data.child2 = [holder.orgChild2Id];
|
||||||
|
} else if (_privilege.child3 && _privilege.child4 === null) {
|
||||||
|
_data.child1 = [holder.orgChild1Id];
|
||||||
|
_data.child2 = [holder.orgChild2Id];
|
||||||
|
_data.child3 = [holder.orgChild3Id];
|
||||||
|
_data.child4 = [holder.orgChild4Id];
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
_data.root = [profile.current_holders.find((x) => x.orgRevisionId === id)?.orgRootId];
|
_data.root = [profile.current_holders.find((x) => x.orgRevisionId === id)?.orgRootId];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2134,7 +2134,6 @@ export class PositionController extends Controller {
|
||||||
orgChild1Id: IsNull(),
|
orgChild1Id: IsNull(),
|
||||||
};
|
};
|
||||||
searchShortName = `CONCAT(orgRoot.orgRootShortName," ",posMaster.posMasterNo) like '%${body.keyword}%'`;
|
searchShortName = `CONCAT(orgRoot.orgRootShortName," ",posMaster.posMasterNo) like '%${body.keyword}%'`;
|
||||||
} else {
|
|
||||||
}
|
}
|
||||||
} else if (body.type === 1) {
|
} else if (body.type === 1) {
|
||||||
typeCondition = {
|
typeCondition = {
|
||||||
|
|
@ -2145,7 +2144,6 @@ export class PositionController extends Controller {
|
||||||
orgChild2Id: IsNull(),
|
orgChild2Id: IsNull(),
|
||||||
};
|
};
|
||||||
searchShortName = `CONCAT(orgChild1.orgChild1ShortName," ",posMaster.posMasterNo) like '%${body.keyword}%'`;
|
searchShortName = `CONCAT(orgChild1.orgChild1ShortName," ",posMaster.posMasterNo) like '%${body.keyword}%'`;
|
||||||
} else {
|
|
||||||
}
|
}
|
||||||
} else if (body.type === 2) {
|
} else if (body.type === 2) {
|
||||||
typeCondition = {
|
typeCondition = {
|
||||||
|
|
@ -2156,7 +2154,6 @@ export class PositionController extends Controller {
|
||||||
orgChild3Id: IsNull(),
|
orgChild3Id: IsNull(),
|
||||||
};
|
};
|
||||||
searchShortName = `CONCAT(orgChild2.orgChild2ShortName," ",posMaster.posMasterNo) like '%${body.keyword}%'`;
|
searchShortName = `CONCAT(orgChild2.orgChild2ShortName," ",posMaster.posMasterNo) like '%${body.keyword}%'`;
|
||||||
} else {
|
|
||||||
}
|
}
|
||||||
} else if (body.type === 3) {
|
} else if (body.type === 3) {
|
||||||
typeCondition = {
|
typeCondition = {
|
||||||
|
|
@ -2167,7 +2164,6 @@ export class PositionController extends Controller {
|
||||||
orgChild4Id: IsNull(),
|
orgChild4Id: IsNull(),
|
||||||
};
|
};
|
||||||
searchShortName = `CONCAT(orgChild3.orgChild3ShortName," ",posMaster.posMasterNo) like '%${body.keyword}%'`;
|
searchShortName = `CONCAT(orgChild3.orgChild3ShortName," ",posMaster.posMasterNo) like '%${body.keyword}%'`;
|
||||||
} else {
|
|
||||||
}
|
}
|
||||||
} else if (body.type === 4) {
|
} else if (body.type === 4) {
|
||||||
typeCondition = {
|
typeCondition = {
|
||||||
|
|
@ -2524,6 +2520,40 @@ export class PositionController extends Controller {
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if(_data.privilege === 'NORMAL'|| _data.privilege === 'PARENT'|| _data.privilege === 'CHILD'){ //PARENT จะไม่มีทางเห็น ROOT , CHILD ยึดจาก CHILD ที่อยู่ลงไปข้างล่างและจะไม่เห็น CHILD ที่อยู่เหนือกว่า
|
||||||
|
const nextChildMap:any = { //เอาไวเช็ค CHILD ถัดไป
|
||||||
|
0: _data.child1,
|
||||||
|
1: _data.child2,
|
||||||
|
2: _data.child3,
|
||||||
|
3: _data.child4,
|
||||||
|
};
|
||||||
|
const childValue = nextChildMap[body.type];
|
||||||
|
if(_data.privilege === 'NORMAL'){
|
||||||
|
if (Array.isArray(childValue) && childValue.some(item => item != null)) {
|
||||||
|
return new HttpSuccess({ data: {}, total: 0 });
|
||||||
|
}
|
||||||
|
}else if(_data.privilege === 'PARENT'){
|
||||||
|
if (body.type == 0){
|
||||||
|
return new HttpSuccess({ data: {}, total: 0 });
|
||||||
|
}
|
||||||
|
} else if (_data.privilege === 'CHILD') {
|
||||||
|
const higherChildChecks = [
|
||||||
|
{ type: [0], child: _data.child1, next: _data.child2 },
|
||||||
|
{ type: [0, 1], child: _data.child2, next: _data.child3 },
|
||||||
|
{ type: [0, 1, 2], child: _data.child3, next: _data.child4 },
|
||||||
|
{ type: [0, 1, 2, 3], child: _data.child4, next: true },
|
||||||
|
];
|
||||||
|
|
||||||
|
for (const check of higherChildChecks) {
|
||||||
|
if (Array.isArray(check.child) && check.next == null) {
|
||||||
|
if (check.type.includes(body.type)) {
|
||||||
|
return new HttpSuccess({ data: {}, total: 0 });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return new HttpSuccess({ data: formattedData, total });
|
return new HttpSuccess({ data: formattedData, total });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue