[type:feature] Change password strictness (#280)
* fixbug/add-model-edit-fail
* feature/change-password
* Update en-US.json
* Update src/locales/zh-CN.json
---------
Co-authored-by: Liming Deng <liming.d.pro@gmail.com>
diff --git a/src/components/GlobalHeader/index.js b/src/components/GlobalHeader/index.js
index 6d3b9df..46edd03 100644
--- a/src/components/GlobalHeader/index.js
+++ b/src/components/GlobalHeader/index.js
@@ -150,7 +150,8 @@
payload: {
id: window.sessionStorage.getItem("userId"),
userName: window.sessionStorage.getItem("userName"),
- password: values.password
+ password: values.password,
+ oldPassword: values.oldPassword
},
callback: () => {
this.setState({ visible: false });
@@ -165,6 +166,28 @@
<Form labelCol={{ span: 8 }} wrapperCol={{ span: 14 }}>
<Form.Item
required
+ label={getIntlContent("SHENYU.GLOBALHEADER.OLD.PASSWORD")}
+ >
+ {getFieldDecorator("oldPassword", {
+ rules: [
+ {
+ validator(rule, value, callback) {
+ if (!value || value.length === 0) {
+ callback(
+ getIntlContent(
+ "SHENYU.GLOBALHEADER.NOTNULL"
+ )
+ );
+ return;
+ }
+ callback();
+ }
+ }
+ ]
+ })(<Input.Password />)}
+ </Form.Item>
+ <Form.Item
+ required
label={getIntlContent("SHENYU.GLOBALHEADER.NEW.PASSWORD")}
extra={getIntlContent("SHENYU.GLOBALHEADER.PASSWORD.EXTRA")}
>
@@ -187,11 +210,7 @@
);
return;
}
- if (
- !/(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[^a-zA-Z0-9])/.test(
- value
- )
- ) {
+ if (!/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/.test(value)) {
callback(
getIntlContent("SHENYU.GLOBALHEADER.PASSWORD.RULE")
);
diff --git a/src/locales/en-US.json b/src/locales/en-US.json
index 087be7c..faf9bdf 100644
--- a/src/locales/en-US.json
+++ b/src/locales/en-US.json
@@ -1,9 +1,11 @@
{
"SHENYU.GLOBALHEADER.LOGOUT": "Logout",
+ "SHENYU.GLOBALHEADER.NOTNULL": "not null",
"SHENYU.GLOBALHEADER.CHANGE.PASSWORD": "Change Password",
"SHENYU.GLOBALHEADER.NEW.PASSWORD": "New Password",
+ "SHENYU.GLOBALHEADER.OLD.PASSWORD": "Old Password",
"SHENYU.GLOBALHEADER.PASSWORD.EXTRA":
- "The password is 8 ~ 16 characters long and must contain uppercase letters, lowercase letters, numbers and special characters",
+ "Minimum length of 8, including upper and lower case letters, numbers and special characters",
"SHENYU.GLOBALHEADER.PASSWORD.REQUIRED": "Please enter a new password",
"SHENYU.GLOBALHEADER.PASSWORD.LENGTH":
"The password length is 8 ~ 16 characters",
@@ -221,6 +223,8 @@
"SHENYU.AUTH.PARAMS": "Params",
"SHENYU.AUTH.PHONE": "TelPhone",
"SHENYU.AUTH.APPNAME": "AppName",
+ "SHENYU.AUTH.SERVER": "Service",
+ "SHENYU.AUTH.SERVERNAME": "ServiceName",
"SHENYU.AUTH.RESOUCE.PATH": "ResourcePath",
"SHENYU.AUTH.PATH.DESCRIBE": "PathDescribe",
"SHENYU.AUTH.OPERATPATH": "PathOperation",
diff --git a/src/locales/zh-CN.json b/src/locales/zh-CN.json
index 023747f..163629d 100644
--- a/src/locales/zh-CN.json
+++ b/src/locales/zh-CN.json
@@ -1,9 +1,10 @@
{
"SHENYU.GLOBALHEADER.LOGOUT": "退出登录",
+ "SHENYU.GLOBALHEADER.NOTNULL": "不能为空",
"SHENYU.GLOBALHEADER.CHANGE.PASSWORD": "修改密码",
"SHENYU.GLOBALHEADER.NEW.PASSWORD": "新密码",
- "SHENYU.GLOBALHEADER.PASSWORD.EXTRA":
- "密码长度为8~16个字符,必须包含大写字母、小写字母、数字、特殊字符",
+ "SHENYU.GLOBALHEADER.OLD.PASSWORD": "旧密码",
+ "SHENYU.GLOBALHEADER.PASSWORD.EXTRA": "长度至少为8,包含大小写字母、数字和特殊字符",
"SHENYU.GLOBALHEADER.PASSWORD.REQUIRED": "请输入新密码",
"SHENYU.GLOBALHEADER.PASSWORD.LENGTH": "密码长度为8~16个字符",
"SHENYU.GLOBALHEADER.PASSWORD.RULE":
@@ -213,6 +214,8 @@
"SHENYU.AUTH.PARAMS": "参数",
"SHENYU.AUTH.PHONE": "手机号",
"SHENYU.AUTH.APPNAME": "应用名称",
+ "SHENYU.AUTH.SERVER": "服务",
+ "SHENYU.AUTH.SERVERNAME": "服务名称",
"SHENYU.AUTH.RESOUCE.PATH": "资源路径",
"SHENYU.AUTH.PATH.DESCRIBE": "路径描述",
"SHENYU.AUTH.OPERATPATH": "路径操作",
diff --git a/src/services/api.js b/src/services/api.js
index d823fa5..8caf746 100644
--- a/src/services/api.js
+++ b/src/services/api.js
@@ -59,7 +59,8 @@
method: `PUT`,
body: {
userName: params.userName,
- password: params.password
+ password: params.password,
+ oldPassword: params.oldPassword
}
});
}