开放客服 kuaishou-lewan 换绑角色权限

与刷新角色一致,换绑改用 canOperateAssistedTask,
不开放重试/发货/退号等完整任务生命周期能力。
This commit is contained in:
yml2213
2026-07-10 18:30:50 +08:00
parent 827baf4ab2
commit 2fade9aba9
4 changed files with 18 additions and 3 deletions
@@ -354,7 +354,7 @@ export async function getAdminTaskDetail(
String(task.executor_key || '').trim() === 'kuaishou_ct_assisted' &&
Number(kuaishouCloudFulfillment?.binding.vnId || 0) > 0,
canRebindKuaishouCloudRole:
viewerContext.canManageTaskLifecycle &&
viewerContext.canOperateAssistedTask &&
String(task.executor_key || '').trim() === 'kuaishou_ct_assisted' &&
canRebindKuaishouCloudRoleStatus(task.task_status) &&
String(kuaishouCloudFulfillment?.dispatch.status || 'pending').trim() !== 'success' &&
@@ -43,9 +43,23 @@ test('createAdminViewerContext lets support operate vouchers without lifecycle p
const viewerContext = createAdminViewerContext({ role: 'support' })
assert.equal(viewerContext.canOperateKuaishouIndustryVoucher, true)
assert.equal(viewerContext.canOperateAssistedTask, true)
assert.equal(viewerContext.canManageTaskLifecycle, false)
})
test('createAdminViewerContext lets support rebind-assisted actions without full lifecycle', () => {
const support = createAdminViewerContext({ role: 'support' })
const operator = createAdminViewerContext({ role: 'operator' })
// 客服:可协助换绑/刷新角色,不可管理任务生命周期(重试/发货/退号等)
assert.equal(support.canOperateAssistedTask, true)
assert.equal(support.canManageTaskLifecycle, false)
// 运营:两者皆可
assert.equal(operator.canOperateAssistedTask, true)
assert.equal(operator.canManageTaskLifecycle, true)
})
test('mapKuaishouCloudFulfillmentContext exposes cloud account display labels', () => {
const flow = mapKuaishouCloudFulfillmentContext(
{
@@ -210,7 +210,8 @@ export async function rebindAdminTaskKuaishouCloudRole(
const task = await getRequiredTask(taskId)
const viewerContext = createAdminViewerContext(session)
if (!viewerContext.canManageTaskLifecycle) {
// 与刷新角色一致:客服可换绑协助处理 UID 绑错,不开放完整任务生命周期
if (!viewerContext.canOperateAssistedTask) {
throw createHttpError('当前账号没有权限换绑角色', {
statusCode: 403,
errorCode: 'admin_task_rebind_kuaishou_cloud_forbidden',