feat(users): merchandiser inherits purchase permission subject
采购-跟单(merchandiser,含跟单组与雁兰/槐米特例)解析权限主体时追加采购负责人主体:给采购负责人开通的节点权限与供应链权限对跟单自动生效,无需重复开通;核价与质检主体保持独立。
This commit is contained in:
parent
607b030034
commit
7ed6c061c4
@ -68,7 +68,7 @@ describe('intake node permission settings', () => {
|
||||
'江苏简尚品牌管理有限公司 > 供应链中心 > 品牌 采购部 > 跟单组',
|
||||
],
|
||||
}),
|
||||
).toEqual(['merchandiser'])
|
||||
).toEqual(['merchandiser', 'purchase'])
|
||||
|
||||
expect(
|
||||
resolveIntakeNodePermissionSubjectKeys({
|
||||
@ -99,7 +99,7 @@ describe('intake node permission settings', () => {
|
||||
'江苏简尚品牌管理有限公司 > 供应链中心 > 跟单质检部',
|
||||
],
|
||||
}),
|
||||
).toEqual(['merchandiser'])
|
||||
).toEqual(['merchandiser', 'purchase'])
|
||||
|
||||
expect(
|
||||
resolveIntakeNodePermissionSubjectKeys({
|
||||
@ -110,7 +110,7 @@ describe('intake node permission settings', () => {
|
||||
'江苏简尚品牌管理有限公司 > 供应链中心 > 跟单质检部',
|
||||
],
|
||||
}),
|
||||
).toEqual(['merchandiser'])
|
||||
).toEqual(['merchandiser', 'purchase'])
|
||||
|
||||
expect(
|
||||
resolveIntakeNodePermissionSubjectKeys({
|
||||
@ -188,6 +188,37 @@ describe('intake node permission settings', () => {
|
||||
).toEqual(['management'])
|
||||
})
|
||||
|
||||
it('lets merchandiser users inherit permissions opened for purchasing', () => {
|
||||
const subjectKeys = resolveIntakeNodePermissionSubjectKeys({
|
||||
name: '雁兰',
|
||||
role: 'USER',
|
||||
businessRoles: ['PURCHASING'],
|
||||
departmentPaths: [
|
||||
'江苏简尚品牌管理有限公司 > 供应链中心 > 跟单质检部',
|
||||
],
|
||||
})
|
||||
|
||||
expect(subjectKeys).toEqual(['merchandiser', 'purchase'])
|
||||
|
||||
expect(
|
||||
resolveIntakeNodePermissionAccess({}, 'bomCostingWorkbench', subjectKeys),
|
||||
).toMatchObject({
|
||||
defaultState: 'readonly',
|
||||
view: true,
|
||||
edit: false,
|
||||
})
|
||||
|
||||
const overrides = sanitizeIntakeNodePermissionOverrides({
|
||||
[buildIntakeNodePermissionOverrideKey('warehouseManage', 'purchase', 'view')]: true,
|
||||
})
|
||||
expect(
|
||||
resolveIntakeNodePermissionAccess(overrides, 'warehouseManage', subjectKeys),
|
||||
).toMatchObject({ view: true, download: false, edit: false })
|
||||
expect(
|
||||
resolveIntakeNodePermissionAccess({}, 'warehouseManage', subjectKeys),
|
||||
).toMatchObject({ view: false, edit: false })
|
||||
})
|
||||
|
||||
it('uses the same matrix for default view, download, and admin-opened overrides', () => {
|
||||
const spaceKeys = ['space'] as const
|
||||
expect(
|
||||
|
||||
@ -1055,6 +1055,8 @@ export function resolveIntakeNodePermissionSubjectKeys(
|
||||
hasDepartmentPath(user, isMerchandiserDepartmentPath)
|
||||
) {
|
||||
pushUniqueSubject(keys, "merchandiser");
|
||||
// 采购-跟单必须继承采购负责人主体:给采购开的权限对跟单自动生效,不允许两套分开开
|
||||
pushUniqueSubject(keys, "purchase");
|
||||
}
|
||||
|
||||
if (
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user