users.yaml 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. CurrentUser:
  2. get:
  3. operationId: getCurrentUser
  4. summary: 查询当前用户
  5. parameters:
  6. - $ref: '../components/parameters.yaml#/XRequestId'
  7. responses:
  8. '200':
  9. description: 当前用户摘要
  10. content:
  11. application/json:
  12. schema:
  13. $ref: '../components/schemas.yaml#/UserResponse'
  14. '400':
  15. $ref: '../components/responses.yaml#/InvalidArgument'
  16. '401':
  17. $ref: '../components/responses.yaml#/AuthenticationError'
  18. '403':
  19. $ref: '../components/responses.yaml#/Forbidden'
  20. '500':
  21. $ref: '../components/responses.yaml#/InternalError'
  22. CurrentUserUiTheme:
  23. put:
  24. operationId: updateCurrentUserUiTheme
  25. summary: 更新本人界面主题偏好(契约1.20)
  26. description: 账号级漫游偏好;仅本人可改,无需管理权限。纯视觉偏好,不校验rowVersion、不使Token失效、不写审计日志。
  27. parameters:
  28. - $ref: '../components/parameters.yaml#/XRequestId'
  29. requestBody:
  30. required: true
  31. content:
  32. application/json:
  33. schema:
  34. $ref: '../components/schemas.yaml#/UpdateUiThemeRequest'
  35. responses:
  36. '200':
  37. description: 更新成功,返回最新用户摘要
  38. content:
  39. application/json:
  40. schema:
  41. $ref: '../components/schemas.yaml#/UserResponse'
  42. '400':
  43. $ref: '../components/responses.yaml#/InvalidArgument'
  44. '401':
  45. $ref: '../components/responses.yaml#/AuthenticationError'
  46. '500':
  47. $ref: '../components/responses.yaml#/InternalError'
  48. Users:
  49. get:
  50. operationId: listUsers
  51. summary: 分页查询人员
  52. description: 只读放开(契约1.45):不要求ADMIN类别,任意登录用户可调。锚点管理员(管理范围非全局)不传organizationId时静默收敛到管理范围子树;显式请求的organizationId(含后代展开)与管理范围无交集时返回403 FORBIDDEN("无权限查看该机构的用户")。普通用户(USER)同口径收敛到本人所在部门子树(沿ENABLED机构边,无部门空页),显式请求部门子树外机构同样403。
  53. parameters:
  54. - $ref: '../components/parameters.yaml#/XRequestId'
  55. - name: organizationId
  56. in: query
  57. schema:
  58. $ref: '../components/schemas.yaml#/StringId'
  59. - name: includeDescendants
  60. in: query
  61. schema:
  62. type: boolean
  63. default: false
  64. - name: keyword
  65. in: query
  66. schema:
  67. type: string
  68. - name: status
  69. in: query
  70. schema:
  71. $ref: '../components/schemas.yaml#/EnabledStatus'
  72. - name: page
  73. in: query
  74. schema:
  75. type: integer
  76. minimum: 1
  77. default: 1
  78. - name: pageSize
  79. in: query
  80. schema:
  81. type: integer
  82. minimum: 1
  83. maximum: 100
  84. default: 20
  85. responses:
  86. '200':
  87. description: 人员分页结果
  88. content:
  89. application/json:
  90. schema:
  91. $ref: '../components/schemas.yaml#/UserPageResponse'
  92. '400':
  93. $ref: '../components/responses.yaml#/InvalidArgument'
  94. '401':
  95. $ref: '../components/responses.yaml#/AuthenticationError'
  96. '403':
  97. $ref: '../components/responses.yaml#/Forbidden'
  98. '500':
  99. $ref: '../components/responses.yaml#/InternalError'
  100. post:
  101. operationId: createUser
  102. summary: 创建用户
  103. description: 防提权(契约1.30⑥)——仅当目标roleCode=ADMIN且其生效角色具备机构/用户编辑位(manageOrgEdit/manageUserEdit任一)时校验,目标最终生效管理范围(按「角色锚点优先,角色SELF回落用户级三态」解析)不得超出操作者管理范围,解析为全局或范围外机构返回403 FORBIDDEN("目标超出管理范围");无管理位角色(含默认角色)与USER类别目标不受限,内置admin作为操作者恒全局不受限。
  104. parameters:
  105. - $ref: '../components/parameters.yaml#/XRequestId'
  106. requestBody:
  107. required: true
  108. content:
  109. application/json:
  110. schema:
  111. $ref: '../components/schemas.yaml#/CreateUserRequest'
  112. responses:
  113. '201':
  114. description: 创建成功
  115. content:
  116. application/json:
  117. schema:
  118. $ref: '../components/schemas.yaml#/UserResponse'
  119. '400':
  120. $ref: '../components/responses.yaml#/InvalidArgument'
  121. '401':
  122. $ref: '../components/responses.yaml#/AuthenticationError'
  123. '403':
  124. $ref: '../components/responses.yaml#/Forbidden'
  125. '409':
  126. $ref: '../components/responses.yaml#/Conflict'
  127. '500':
  128. $ref: '../components/responses.yaml#/InternalError'
  129. UsersReorder:
  130. put:
  131. operationId: reorderUsers
  132. summary: 管理员拖动重排用户列表(契约1.27)
  133. description: orderedIds为拖动后的目标顺序,被提交用户按原槽位次序互换(未提交用户相对次序不变),全体用户按步长10重编号sort_no。
  134. parameters:
  135. - $ref: '../components/parameters.yaml#/XRequestId'
  136. requestBody:
  137. required: true
  138. content:
  139. application/json:
  140. schema:
  141. $ref: '../components/schemas.yaml#/ReorderByIdsRequest'
  142. responses:
  143. '200':
  144. description: 重排结果
  145. content:
  146. application/json:
  147. schema:
  148. $ref: '../components/schemas.yaml#/ReorderResultResponse'
  149. '400':
  150. $ref: '../components/responses.yaml#/InvalidArgument'
  151. '401':
  152. $ref: '../components/responses.yaml#/AuthenticationError'
  153. '403':
  154. $ref: '../components/responses.yaml#/Forbidden'
  155. '404':
  156. $ref: '../components/responses.yaml#/NotFound'
  157. '409':
  158. $ref: '../components/responses.yaml#/Conflict'
  159. '500':
  160. $ref: '../components/responses.yaml#/InternalError'
  161. User:
  162. parameters:
  163. - name: id
  164. in: path
  165. required: true
  166. schema:
  167. $ref: '../components/schemas.yaml#/StringId'
  168. put:
  169. operationId: updateUser
  170. summary: 编辑用户
  171. description: 当securityLevel/roleCode/roleIds(挂载角色集合)/status实际变化时强制二次认证(X-DMS-Reauth-Token,缺失或无效返回403 REAUTH_REQUIRED);纯改名等不触发。挂载diff(契约1.46)以活跃启用挂载为基线增删(停用角色关联保留),diff变化联动authVersion+1使旧Token失效。防提权(契约1.30⑥)——目标ADMIN生效管理范围超出操作者时返回403 FORBIDDEN("目标超出管理范围"),多角色按提交roleIds逐角色校验,未提交managedOrgId时按保持原值判定,该校验先于二次认证执行(换角色场景先报越权而非REAUTH_REQUIRED)。
  172. parameters:
  173. - $ref: '../components/parameters.yaml#/XDmsReauthToken'
  174. requestBody:
  175. required: true
  176. content:
  177. application/json:
  178. schema:
  179. $ref: '../components/schemas.yaml#/UpdateUserRequest'
  180. responses:
  181. '200':
  182. description: 编辑成功
  183. content:
  184. application/json:
  185. schema:
  186. $ref: '../components/schemas.yaml#/UserResponse'
  187. '400':
  188. $ref: '../components/responses.yaml#/InvalidArgument'
  189. '401':
  190. $ref: '../components/responses.yaml#/AuthenticationError'
  191. '403':
  192. $ref: '../components/responses.yaml#/Forbidden'
  193. '404':
  194. $ref: '../components/responses.yaml#/NotFound'
  195. '409':
  196. $ref: '../components/responses.yaml#/Conflict'
  197. '500':
  198. $ref: '../components/responses.yaml#/InternalError'
  199. delete:
  200. operationId: deleteUser
  201. summary: 逻辑删除用户
  202. parameters:
  203. - name: rowVersion
  204. in: query
  205. required: true
  206. schema: {type: integer, minimum: 0}
  207. responses:
  208. '200':
  209. description: 删除成功
  210. content:
  211. application/json:
  212. schema:
  213. $ref: '../components/schemas.yaml#/DeleteUserResponse'
  214. '400':
  215. $ref: '../components/responses.yaml#/InvalidArgument'
  216. '401':
  217. $ref: '../components/responses.yaml#/AuthenticationError'
  218. '403':
  219. $ref: '../components/responses.yaml#/Forbidden'
  220. '404':
  221. $ref: '../components/responses.yaml#/NotFound'
  222. '409':
  223. $ref: '../components/responses.yaml#/Conflict'
  224. '500':
  225. $ref: '../components/responses.yaml#/InternalError'
  226. UserResetPassword:
  227. parameters:
  228. - name: id
  229. in: path
  230. required: true
  231. schema:
  232. $ref: '../components/schemas.yaml#/StringId'
  233. post:
  234. operationId: resetUserPassword
  235. summary: 重置用户密码
  236. requestBody:
  237. required: true
  238. content:
  239. application/json:
  240. schema:
  241. $ref: '../components/schemas.yaml#/ResetUserPasswordRequest'
  242. responses:
  243. '200':
  244. description: 重置成功
  245. content:
  246. application/json:
  247. schema:
  248. $ref: '../components/schemas.yaml#/ResetPasswordResponse'
  249. '400':
  250. $ref: '../components/responses.yaml#/InvalidArgument'
  251. '401':
  252. $ref: '../components/responses.yaml#/AuthenticationError'
  253. '403':
  254. $ref: '../components/responses.yaml#/Forbidden'
  255. '404':
  256. $ref: '../components/responses.yaml#/NotFound'
  257. '409':
  258. $ref: '../components/responses.yaml#/Conflict'
  259. '500':
  260. $ref: '../components/responses.yaml#/InternalError'