@nocobase/plugin-users 2.1.0-beta.42 → 2.1.0-beta.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/client-v2-api.md +193 -0
  2. package/dist/client/70.a415ef0ddba902d8.js +10 -0
  3. package/dist/client/index.js +1 -1
  4. package/dist/client/utils.d.ts +1 -1
  5. package/dist/client-v2/143.8fc4573e64ec8c3f.js +10 -0
  6. package/dist/client-v2/470.2edb6762d71bfd6b.js +10 -0
  7. package/dist/client-v2/521.940bb04b68cbf5bd.js +10 -0
  8. package/dist/client-v2/564.f5e6b8862c905453.js +10 -0
  9. package/dist/client-v2/569.07f16da700ba0ba6.js +10 -0
  10. package/dist/client-v2/587.a15f1f5b0dbbf4d5.js +10 -0
  11. package/dist/client-v2/784.25ee62a1613da5a6.js +10 -0
  12. package/dist/client-v2/786.ca0dea7bc67662c3.js +10 -0
  13. package/dist/client-v2/862.2aac0dea47472edf.js +10 -0
  14. package/dist/client-v2/914.d3af69c936276d49.js +10 -0
  15. package/dist/client-v2/components/resource/ResourceFormDrawer.d.ts +33 -0
  16. package/dist/client-v2/components/resource/ResourcePickerView.d.ts +46 -0
  17. package/dist/client-v2/components/resource/ResourceTablePage.d.ts +49 -0
  18. package/dist/client-v2/components/resource/SettingsActionCell.d.ts +39 -0
  19. package/dist/client-v2/components/resource/index.d.ts +12 -0
  20. package/dist/client-v2/index.js +1 -1
  21. package/dist/client-v2/locale.d.ts +6 -2
  22. package/dist/client-v2/models/UserPasswordFieldModel.d.ts +16 -0
  23. package/dist/client-v2/models/UserProfileFormModels.d.ts +19 -0
  24. package/dist/client-v2/models/UserRolesSelectFieldModel.d.ts +14 -0
  25. package/dist/client-v2/pages/ChangeUserPasswordDrawer.d.ts +15 -0
  26. package/dist/client-v2/pages/RoleUsersManager.d.ts +11 -0
  27. package/dist/client-v2/pages/UserFormDrawer.d.ts +15 -0
  28. package/dist/client-v2/pages/UsersManagementPage.d.ts +10 -0
  29. package/dist/client-v2/pages/UsersSettingsForm.d.ts +10 -0
  30. package/dist/client-v2/pages/types.d.ts +30 -0
  31. package/dist/client-v2/shared/adminProfileFormModels.d.ts +15 -0
  32. package/dist/client-v2/shared/generatePassword.d.ts +9 -0
  33. package/dist/client-v2/user-center/CurrentUserSummaryItemModel.d.ts +16 -0
  34. package/dist/client-v2/user-center/EditProfileItemModel.d.ts +18 -0
  35. package/dist/client-v2/user-center/SignOutItemModel.d.ts +17 -0
  36. package/dist/externalVersion.js +12 -10
  37. package/dist/locale/en-US.json +12 -1
  38. package/dist/locale/zh-CN.json +12 -1
  39. package/dist/server/user-data-sync-resource.d.ts +5 -1
  40. package/dist/server/user-data-sync-resource.js +3 -0
  41. package/package.json +2 -2
  42. package/dist/client/825.5b87f2d207f047ef.js +0 -10
@@ -3,10 +3,21 @@
3
3
  "Add users": "Add users",
4
4
  "Allow change password": "Allow change password",
5
5
  "Allow edit profile": "Allow edit profile",
6
+ "Are you sure you want to delete selected users?": "Are you sure you want to delete selected users?",
6
7
  "Are you sure you want to remove it?": "Are you sure you want to remove it?",
8
+ "Delete": "Delete",
9
+ "Delete users": "Delete users",
10
+ "Deleted successfully": "Deleted successfully",
11
+ "Email is required": "Email is required",
12
+ "Password is required": "Password is required",
13
+ "Phone is required": "Phone is required",
14
+ "Please enter a valid email address": "Please enter a valid email address",
7
15
  "Random password": "Random password",
8
16
  "Remove user": "Remove user",
17
+ "Removed successfully": "Removed successfully",
18
+ "Username is required": "Username is required",
9
19
  "User profile is not allowed to be edited": "User profile is not allowed to be edited",
20
+ "Users": "Users",
10
21
  "Users & Permissions": "Users & Permissions",
11
22
  "Users manager": "Users manager"
12
- }
23
+ }
@@ -3,10 +3,21 @@
3
3
  "Add users": "添加用户",
4
4
  "Allow change password": "允许修改密码",
5
5
  "Allow edit profile": "允许修改个人资料",
6
+ "Are you sure you want to delete selected users?": "确定要删除选中的用户吗?",
6
7
  "Are you sure you want to remove it?": "你确定要移除吗?",
8
+ "Delete": "删除",
9
+ "Delete users": "删除用户",
10
+ "Deleted successfully": "删除成功",
11
+ "Email is required": "请输入邮箱",
12
+ "Password is required": "请输入密码",
13
+ "Phone is required": "请输入手机号",
14
+ "Please enter a valid email address": "请输入有效的邮箱地址",
7
15
  "Random password": "随机密码",
8
16
  "Remove user": "移除用户",
17
+ "Removed successfully": "移除成功",
18
+ "Username is required": "请输入用户名",
9
19
  "User profile is not allowed to be edited": "用户资料不允许修改",
20
+ "Users": "用户",
10
21
  "Users & Permissions": "用户和权限",
11
22
  "Users manager": "用户管理"
12
- }
23
+ }
@@ -6,12 +6,16 @@
6
6
  * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
7
  * For more information, please refer to: https://www.nocobase.com/agreement.
8
8
  */
9
- import { Model } from '@nocobase/database';
9
+ import Database, { Model } from '@nocobase/database';
10
+ import { SystemLogger } from '@nocobase/logger';
10
11
  import lodash from 'lodash';
11
12
  import { FormatUser, OriginRecord, PrimaryKey, RecordResourceChanged, SyncAccept, UserDataResource } from '@nocobase/plugin-user-data-sync';
12
13
  export declare class UserDataSyncResource extends UserDataResource {
13
14
  name: string;
14
15
  accepts: SyncAccept[];
16
+ db: Database;
17
+ logger: SystemLogger;
18
+ constructor(db: Database, logger: SystemLogger);
15
19
  get userRepo(): import("@nocobase/database").Repository<any, any>;
16
20
  getFlteredSourceUser(sourceUser: FormatUser): lodash.Omit<FormatUser, string>;
17
21
  updateUser(user: Model, sourceUser: FormatUser): Promise<void>;
@@ -44,6 +44,9 @@ var import_plugin_user_data_sync = require("@nocobase/plugin-user-data-sync");
44
44
  class UserDataSyncResource extends import_plugin_user_data_sync.UserDataResource {
45
45
  name = "users";
46
46
  accepts = ["user"];
47
+ constructor(db, logger) {
48
+ super(db, logger);
49
+ }
47
50
  get userRepo() {
48
51
  return this.db.getRepository("users");
49
52
  }
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "description": "Provides basic user model, as well as created by and updated by fields.",
7
7
  "description.ru-RU": "Предоставляет базовую модель пользователя, а также поля кем, когда «создано» и «обновлено».",
8
8
  "description.zh-CN": "提供了基础的用户模型,以及创建人和最后更新人字段。",
9
- "version": "2.1.0-beta.42",
9
+ "version": "2.1.0-beta.44",
10
10
  "license": "Apache-2.0",
11
11
  "main": "./dist/server/index.js",
12
12
  "homepage": "https://docs.nocobase.com/handbook/users",
@@ -31,7 +31,7 @@
31
31
  "@nocobase/test": "2.x",
32
32
  "@nocobase/utils": "2.x"
33
33
  },
34
- "gitHead": "619b4d06c934bf3266ba7f388438db018217c87d",
34
+ "gitHead": "540d4897b1696cc24c0754521b0b766978b4933c",
35
35
  "keywords": [
36
36
  "Users & permissions"
37
37
  ]
@@ -1,10 +0,0 @@
1
- /**
2
- * This file is part of the NocoBase (R) project.
3
- * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
- * Authors: NocoBase Team.
5
- *
6
- * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
- * For more information, please refer to: https://www.nocobase.com/agreement.
8
- */
9
-
10
- "use strict";(self.webpackChunk_nocobase_plugin_users=self.webpackChunk_nocobase_plugin_users||[]).push([["825"],{616:function(e,t,r){r.r(t),r.d(t,{UsersManagement:function(){return M}});var n=r(477),o=r(452),a=r(230),u=r(342),i=r(59),c=r(155),l=r.n(c),s=r(460),f=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t="ABCDEFGHIJKLMNOPQRSTUVWXYZ",r="abcdefghijklmnopqrstuvwxyz",n="0123456789",o="!#$%^&*-_+=",a=t+r+n+o,u=new Uint32Array(e);crypto.getRandomValues(u);var i="";i+=t.charAt(u[0]%t.length),i+=r.charAt(u[1]%r.length),i+=n.charAt(u[2]%n.length),i+=o.charAt(u[3]%o.length);for(var c=4;c<e;c++){var l=u[c]%a.length;i+=a.charAt(l)}return i[0]+i.slice(1).split("").sort(function(){return Math.random()-.5}).join("")};function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var m=function(){var e,t=(0,s.n)().t,r=(0,a.useField)(),n=function(e){if(Array.isArray(e))return e}(e=l().useState(!1))||function(e){var t,r,n=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o=[],a=!0,u=!1;try{for(n=n.call(e);!(a=(t=n.next()).done)&&(o.push(t.value),2!==o.length);a=!0);}catch(e){u=!0,r=e}finally{try{a||null==n.return||n.return()}finally{if(u)throw r}}return o}}(e)||function(e){if(e){if("string"==typeof e)return p(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return p(e,2)}}(e)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),o=n[0],m=n[1],b=(0,u.useActionContext)();return(0,c.useEffect)(function(){b.visible||r.reset()},[r,b.visible]),(0,c.useEffect)(function(){r.value&&r.validate()},[r.value]),l().createElement(i.Row,{gutter:10},l().createElement(i.Col,{span:18},l().createElement(u.Password,{checkStrength:!0,visibilityToggle:{visible:o,onVisibleChange:m},value:r.value,onChange:function(e){return r.setValue(e.target.value)},autoComplete:"new-password"})),l().createElement(i.Col,{span:4},l().createElement(i.Button,{onClick:function(){r.setValue(f()),m(!0)}},t("Random password"))))},b=r(54);function v(e,t,r,n,o,a,u){try{var i=e[a](u),c=i.value}catch(e){r(e);return}i.done?t(c):Promise.resolve(c).then(n,o)}function d(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var a=e.apply(t,r);function u(e){v(a,n,o,u,i,"next",e)}function i(e){v(a,n,o,u,i,"throw",e)}u(void 0)})}}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function h(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function g(e,t){var r,n,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),i=Object.defineProperty;return i(u,"next",{value:c(0)}),i(u,"throw",{value:c(1)}),i(u,"return",{value:c(2)}),"function"==typeof Symbol&&i(u,Symbol.iterator,{value:function(){return this}}),u;function c(i){return function(c){var l=[i,c];if(r)throw TypeError("Generator is already executing.");for(;u&&(u=0,l[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&l[0]?n.return:l[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,l[1])).done)return o;switch(n=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return a.label++,{value:l[1],done:!1};case 5:a.label++,n=l[1],l=[0];continue;case 7:l=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){a=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){a.label=l[1];break}if(6===l[0]&&a.label<o[1]){a.label=o[1],o=l;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(l);break}o[2]&&a.ops.pop(),a.trys.pop();continue}l=t.call(e,a)}catch(e){l=[6,e],n=0}finally{r=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}function C(){var e,t,r=(e=["\n .ant-tabs-nav {\n margin-bottom: 0px;\n }\n "],t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}})));return C=function(){return r},r}var w=function(){var e=(0,u.useActionContext)().setVisible,t=(0,a.useForm)();return{type:"default",onClick:function(){e(!1),t.reset()}}},P=function(){var e=(0,u.useActionContext)().setVisible,t=i.App.useApp().message,r=(0,a.useForm)(),n=(0,u.useDataBlockResource)(),o=(0,u.useDataBlockRequest)().refresh,c=(0,s.n)().t,l=(0,u.useCollection)();return{htmlType:"submit",type:"primary",onClick:function(){return d(function(){var a;return g(this,function(u){switch(u.label){case 0:return[4,r.submit()];case 1:if(u.sent(),!(a=r.values)[l.filterTargetKey])return[3,3];return[4,n.update({values:a,filterByTk:a[l.filterTargetKey]})];case 2:return u.sent(),[3,5];case 3:return[4,n.create({values:a})];case 4:u.sent(),u.label=5;case 5:return o(),t.success(c("Saved successfully")),e(!1),r.reset(),[2]}})})()}}},O=function(){var e=(0,u.useCollectionRecordData)();return{form:(0,c.useMemo)(function(){return(0,o.createForm)({initialValues:e})},[e])}},S=function(){return l().createElement(u.RemoteSchemaComponent,{uid:"nocobase-admin-profile-create-form",noForm:!0})},E=function(){var e=(0,u.useCollectionManager)().getCollection("users"),t=h(y({},e),{name:"users",fields:e.fields.filter(function(e){return"password"!==e.name})});return l().createElement(u.ExtendCollectionsProvider,{collections:[t]},l().createElement(u.RemoteSchemaComponent,{uid:"nocobase-admin-profile-edit-form",noForm:!0,scope:{useCancelActionProps:w}}))},A=function(){var e=(0,u.useSchemaComponentContext)();return l().createElement(u.SchemaComponentContext.Provider,{value:h(y({},e),{designable:!1})},l().createElement(u.SchemaComponent,{schema:{type:"void",properties:{filter:{type:"void",title:'{{ t("Filter") }}',"x-action":"filter","x-component":"Filter.Action","x-use-component-props":"useFilterActionProps","x-component-props":{icon:"FilterOutlined"}}}}}))},j=function(){var e=(0,s.n)().t,t=(0,u.useCollectionManager)();return(0,c.useMemo)(function(){return null==t?void 0:t.getCollection("users")},[t])?l().createElement(u.SchemaComponent,{schema:b.Oo,scope:{t:e,useCancelActionProps:w,useSubmitActionProps:P,useEditFormProps:O},components:{PasswordField:m,ProfileEditForm:E,ProfileCreateForm:S,FilterAction:A}}):l().createElement(i.Spin,null)},k=(0,c.createContext)({}),x=function(e){var t=(0,u.useRequest)({url:"users:getSystemSettings"});return l().createElement(k.Provider,{value:t},e.children)},F=function(){var e=(0,s.n)().t,t=(0,a.useForm)();return l().createElement(u.SchemaComponent,{schema:b.fj,scope:{t:e,useFormBlockProps:function(){var e,r=(0,c.useContext)(k),n=(null==r||null==(e=r.data)?void 0:e.data)||{},o=n.enableChangePassword,a=n.enableEditProfile;return(0,c.useEffect)(function(){null==t||t.setValues({enableChangePassword:!1!==o,enableEditProfile:!1!==a})},[r]),{form:t}},useSubmitActionProps:function(){var t=(0,u.useAPIClient)(),r=(0,a.useForm)();return{type:"primary",onClick:function(){return d(function(){var n;return g(this,function(o){switch(o.label){case 0:return[4,r.submit()];case 1:return o.sent(),n=r.values,[4,t.request({url:"users:updateSystemSettings",data:n,method:"POST"})];case 2:return o.sent(),i.message.success(e("Saved successfully")),window.location.reload(),[2]}})})()}}}},components:{UsersSettingsProvider:x}})},M=function(){var e=(0,s.n)().t;return l().createElement(i.Tabs,{defaultActiveKey:"usersManager",type:"card",className:(0,n.css)(C()),items:[{label:e("Users manager"),key:"usersManager",children:l().createElement(j,null)},{label:e("Settings"),key:"usersSettings",children:l().createElement(F,null)}]})}}}]);