uni-id-users.schema.json 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478
  1. {
  2. "bsonType": "object",
  3. "permission": {
  4. "read": true,
  5. "create": "'CREATE_UNI_ID_USERS' in auth.permission",
  6. "update": "doc._id == auth.uid || 'UPDATE_UNI_ID_USERS' in auth.permission",
  7. "delete": "'DELETE_UNI_ID_USERS' in auth.permission"
  8. },
  9. "properties": {
  10. "_id": {
  11. "description": "存储文档 ID(用户 ID),系统自动生成"
  12. },
  13. "ali_openid": {
  14. "bsonType": "string",
  15. "description": "支付宝平台openid",
  16. "permission": {
  17. "read": "'READ_UNI_ID_USERS' in auth.permission",
  18. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  19. }
  20. },
  21. "apple_openid": {
  22. "bsonType": "string",
  23. "description": "苹果登录openid",
  24. "permission": {
  25. "read": "'READ_UNI_ID_USERS' in auth.permission",
  26. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  27. }
  28. },
  29. "avatar": {
  30. "bsonType": "string",
  31. "description": "头像地址",
  32. "title": "头像地址",
  33. "trim": "both",
  34. "permission": {
  35. "read": true,
  36. "write": "doc._id == auth.uid || 'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  37. }
  38. },
  39. "avatar_file": {
  40. "bsonType": "file",
  41. "description": "用file类型方便使用uni-file-picker组件",
  42. "title": "头像文件",
  43. "permission": {
  44. "read": true,
  45. "write": "doc._id == auth.uid || 'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  46. }
  47. },
  48. "comment": {
  49. "bsonType": "string",
  50. "description": "备注",
  51. "title": "备注",
  52. "trim": "both",
  53. "permission": {
  54. "read": "'READ_UNI_ID_USERS' in auth.permission",
  55. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  56. }
  57. },
  58. "dcloud_appid": {
  59. "bsonType": "array",
  60. "description": "允许登录的客户端的appid列表",
  61. "foreignKey": "opendb-app-list.appid",
  62. "permission": {
  63. "read": "'READ_UNI_ID_USERS' in auth.permission",
  64. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  65. }
  66. },
  67. "department_id": {
  68. "bsonType": "array",
  69. "description": "部门ID",
  70. "enum": {
  71. "collection": "opendb-department",
  72. "field": "_id as value, name as text",
  73. "orderby": "name asc"
  74. },
  75. "enumType": "tree",
  76. "title": "部门",
  77. "permission": {
  78. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  79. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  80. }
  81. },
  82. "email": {
  83. "bsonType": "string",
  84. "description": "邮箱地址",
  85. "format": "email",
  86. "title": "邮箱",
  87. "trim": "both",
  88. "permission": {
  89. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  90. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  91. }
  92. },
  93. "email_confirmed": {
  94. "bsonType": "int",
  95. "defaultValue": 0,
  96. "description": "邮箱验证状态:0 未验证 1 已验证",
  97. "enum": [{
  98. "text": "未验证",
  99. "value": 0
  100. },
  101. {
  102. "text": "已验证",
  103. "value": 1
  104. }
  105. ],
  106. "title": "邮箱验证状态",
  107. "permission": {
  108. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  109. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  110. }
  111. },
  112. "gender": {
  113. "bsonType": "int",
  114. "defaultValue": 0,
  115. "description": "用户性别:0 未知 1 男性 2 女性",
  116. "enum": [{
  117. "text": "未知",
  118. "value": 0
  119. },
  120. {
  121. "text": "男",
  122. "value": 1
  123. },
  124. {
  125. "text": "女",
  126. "value": 2
  127. }
  128. ],
  129. "title": "性别",
  130. "permission": {
  131. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  132. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  133. }
  134. },
  135. "invite_time": {
  136. "bsonType": "timestamp",
  137. "description": "受邀时间",
  138. "permission": {
  139. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  140. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  141. }
  142. },
  143. "inviter_uid": {
  144. "bsonType": "array",
  145. "description": "用户全部上级邀请者",
  146. "trim": "both",
  147. "permission": {
  148. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  149. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  150. }
  151. },
  152. "last_login_date": {
  153. "bsonType": "timestamp",
  154. "description": "最后登录时间",
  155. "permission": {
  156. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  157. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  158. }
  159. },
  160. "last_login_ip": {
  161. "bsonType": "string",
  162. "description": "最后登录时 IP 地址",
  163. "permission": {
  164. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  165. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  166. }
  167. },
  168. "mobile": {
  169. "bsonType": "string",
  170. "description": "手机号码",
  171. "pattern": "^\\+?[0-9-]{3,20}$",
  172. "title": "手机号码",
  173. "trim": "both",
  174. "permission": {
  175. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  176. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  177. }
  178. },
  179. "mobile_confirmed": {
  180. "bsonType": "int",
  181. "defaultValue": 0,
  182. "description": "手机号验证状态:0 未验证 1 已验证",
  183. "enum": [{
  184. "text": "未验证",
  185. "value": 0
  186. },
  187. {
  188. "text": "已验证",
  189. "value": 1
  190. }
  191. ],
  192. "title": "手机号验证状态",
  193. "permission": {
  194. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  195. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  196. }
  197. },
  198. "my_invite_code": {
  199. "bsonType": "string",
  200. "description": "用户自身邀请码",
  201. "permission": {
  202. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  203. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  204. }
  205. },
  206. "nickname": {
  207. "bsonType": "string",
  208. "description": "用户昵称",
  209. "title": "昵称",
  210. "trim": "both",
  211. "permission": {
  212. "read": true,
  213. "write": "doc._id == auth.uid || 'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  214. }
  215. },
  216. "password": {
  217. "bsonType": "password",
  218. "description": "密码,加密存储",
  219. "title": "密码",
  220. "trim": "both"
  221. },
  222. "password_secret_version": {
  223. "bsonType": "int",
  224. "description": "密码使用的passwordSecret版本",
  225. "title": "passwordSecret",
  226. "permission": {
  227. "read": false,
  228. "write": false
  229. }
  230. },
  231. "realname_auth": {
  232. "bsonType": "object",
  233. "description": "实名认证信息",
  234. "permission": {
  235. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  236. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  237. },
  238. "properties": {
  239. "auth_date": {
  240. "bsonType": "timestamp",
  241. "description": "认证通过时间"
  242. },
  243. "auth_status": {
  244. "bsonType": "int",
  245. "description": "认证状态:0 未认证 1 等待认证 2 认证通过 3 认证失败",
  246. "maximum": 3,
  247. "minimum": 0
  248. },
  249. "contact_email": {
  250. "bsonType": "string",
  251. "description": "联系人邮箱"
  252. },
  253. "contact_mobile": {
  254. "bsonType": "string",
  255. "description": "联系人手机号码"
  256. },
  257. "contact_person": {
  258. "bsonType": "string",
  259. "description": "联系人姓名"
  260. },
  261. "id_card_back": {
  262. "bsonType": "string",
  263. "description": "身份证反面照 URL"
  264. },
  265. "id_card_front": {
  266. "bsonType": "string",
  267. "description": "身份证正面照 URL"
  268. },
  269. "identity": {
  270. "bsonType": "string",
  271. "description": "身份证号码/营业执照号码"
  272. },
  273. "in_hand": {
  274. "bsonType": "string",
  275. "description": "手持身份证照片 URL"
  276. },
  277. "license": {
  278. "bsonType": "string",
  279. "description": "营业执照 URL"
  280. },
  281. "real_name": {
  282. "bsonType": "string",
  283. "description": "真实姓名/企业名称"
  284. },
  285. "type": {
  286. "bsonType": "int",
  287. "description": "用户类型:0 个人用户 1 企业用户",
  288. "maximum": 1,
  289. "minimum": 0
  290. }
  291. },
  292. "required": [
  293. "type",
  294. "auth_status"
  295. ]
  296. },
  297. "register_date": {
  298. "bsonType": "timestamp",
  299. "description": "注册时间",
  300. "forceDefaultValue": {
  301. "$env": "now"
  302. },
  303. "permission": {
  304. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  305. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  306. }
  307. },
  308. "register_ip": {
  309. "bsonType": "string",
  310. "description": "注册时 IP 地址",
  311. "forceDefaultValue": {
  312. "$env": "clientIP"
  313. },
  314. "permission": {
  315. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  316. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  317. }
  318. },
  319. "role": {
  320. "bsonType": "array",
  321. "description": "用户角色",
  322. "enum": {
  323. "collection": "uni-id-roles",
  324. "field": "role_id as value, role_name as text"
  325. },
  326. "foreignKey": "uni-id-roles.role_id",
  327. "permission": {
  328. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  329. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  330. },
  331. "title": "角色"
  332. },
  333. "tags":{
  334. "bsonType": "array",
  335. "description": "用户标签",
  336. "permission": {
  337. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  338. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  339. },
  340. "title": "标签"
  341. },
  342. "score": {
  343. "bsonType": "int",
  344. "description": "用户积分,积分变更记录可参考:uni-id-scores表定义",
  345. "permission": {
  346. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  347. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  348. }
  349. },
  350. "status": {
  351. "bsonType": "int",
  352. "defaultValue": 0,
  353. "description": "用户状态:0 正常 1 禁用 2 审核中 3 审核拒绝 4 已注销",
  354. "permission": {
  355. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  356. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  357. },
  358. "enum": [{
  359. "text": "正常",
  360. "value": 0
  361. },
  362. {
  363. "text": "禁用",
  364. "value": 1
  365. },
  366. {
  367. "text": "审核中",
  368. "value": 2
  369. },
  370. {
  371. "text": "审核拒绝",
  372. "value": 3
  373. },
  374. {
  375. "text": "已注销",
  376. "value": 4
  377. }
  378. ],
  379. "title": "用户状态"
  380. },
  381. "token": {
  382. "bsonType": "array",
  383. "description": "用户token",
  384. "permission": {
  385. "read": false,
  386. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  387. }
  388. },
  389. "username": {
  390. "bsonType": "string",
  391. "description": "用户名,不允许重复",
  392. "title": "用户名",
  393. "trim": "both",
  394. "permission": {
  395. "read": "doc._id == auth.uid || 'READ_UNI_ID_USERS' in auth.permission",
  396. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  397. }
  398. },
  399. "wx_openid": {
  400. "bsonType": "object",
  401. "description": "微信各个平台openid",
  402. "properties": {
  403. "app": {
  404. "bsonType": "string",
  405. "description": "app平台微信openid"
  406. },
  407. "mp": {
  408. "bsonType": "string",
  409. "description": "微信小程序平台openid"
  410. },
  411. "h5": {
  412. "bsonType": "string",
  413. "description": "微信公众号登录openid"
  414. },
  415. "web": {
  416. "bsonType": "string",
  417. "description": "PC页面扫码登录openid"
  418. }
  419. },
  420. "permission": {
  421. "read": "'READ_UNI_ID_USERS' in auth.permission",
  422. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  423. }
  424. },
  425. "wx_unionid": {
  426. "bsonType": "string",
  427. "description": "微信unionid",
  428. "permission": {
  429. "read": "'READ_UNI_ID_USERS' in auth.permission",
  430. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  431. }
  432. },
  433. "qq_openid": {
  434. "bsonType": "object",
  435. "description": "QQ各个平台openid",
  436. "properties": {
  437. "app": {
  438. "bsonType": "string",
  439. "description": "app平台QQ openid"
  440. },
  441. "mp": {
  442. "bsonType": "string",
  443. "description": "QQ小程序平台openid"
  444. }
  445. },
  446. "permission": {
  447. "read": "'READ_UNI_ID_USERS' in auth.permission",
  448. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  449. }
  450. },
  451. "qq_unionid": {
  452. "bsonType": "string",
  453. "description": "QQ unionid",
  454. "permission": {
  455. "read": "'READ_UNI_ID_USERS' in auth.permission",
  456. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  457. }
  458. },
  459. "third_party": {
  460. "bsonType": "object",
  461. "description": "三方平台凭证",
  462. "permission": {
  463. "read": false,
  464. "write": false
  465. }
  466. },
  467. "identities": {
  468. "bsonType": "array",
  469. "description": "三方平台身份信息;一个对象代表一个身份,参数支持: provider 身份源, userInfo 三方用户信息, openid 三方openid, unionid 三方unionid, uid 三方uid",
  470. "permission": {
  471. "read": "'READ_UNI_ID_USERS' in auth.permission",
  472. "write": "'CREATE_UNI_ID_USERS' in auth.permission || 'UPDATE_UNI_ID_USERS' in auth.permission"
  473. }
  474. }
  475. },
  476. "required": []
  477. }