diff --git a/src/controllers/AuthRoleController.ts b/src/controllers/AuthRoleController.ts index e747ec9f..fd8ad2c2 100644 --- a/src/controllers/AuthRoleController.ts +++ b/src/controllers/AuthRoleController.ts @@ -123,9 +123,24 @@ export class AuthRoleController extends Controller { return attr; }); + const newAttrs = body.authRoleAttrs + .filter((a) => !roleAttrData.some((attr) => attr.authSysId === a.authSysId)) + .map((attr) => { + const newAttr = new AuthRoleAttr(); + Object.assign(newAttr, attr, { + authRoleId: roleId, + createdUserId: req.user.sub, + createdFullName: req.user.name, + lastUpdateUserId: req.user.sub, + lastUpdateFullName: req.user.name, + }); + return newAttr; + }); + await Promise.all([ this.authRoleRepo.save(record), ...updatedRoleAttrData.map((attr) => this.authRoleAttrRepo.save(attr)), + ...newAttrs.map((attr) => this.authRoleAttrRepo.save(attr)), ]); return new HttpSuccess();