Compare commits

...
5 Commits
5 changed files with 25 additions and 15 deletions
@@ -8,7 +8,7 @@ import { withPopup } from '../../lib/popup';
import { Input, Popup } from '../../lib/custom-ui'; import { Input, Popup } from '../../lib/custom-ui';
import { useForm } from '../../hooks'; import { useForm } from '../../hooks';
import { isUsername } from '../../utils/validator'; import { isPassword, isUsername } from '../../utils/validator';
import styles from './UserAddPopup.module.scss'; import styles from './UserAddPopup.module.scss';
@@ -69,7 +69,7 @@ const UserAddStep = React.memo(
return; return;
} }
if (!cleanData.password) { if (!cleanData.password || !isPassword(cleanData.password)) {
passwordField.current.focus(); passwordField.current.focus();
return; return;
} }
@@ -142,15 +142,19 @@ const UserAddStep = React.memo(
onChange={handleFieldChange} onChange={handleFieldChange}
/> />
<div className={styles.text}>{t('common.password')}</div> <div className={styles.text}>{t('common.password')}</div>
<div className={styles.field}>
<Input.Password <Input.Password
fluid fluid
ref={passwordField} ref={passwordField}
name="password" name="password"
value={data.password} value={data.password}
readOnly={isSubmitting} readOnly={isSubmitting}
className={styles.field}
onChange={handleFieldChange} onChange={handleFieldChange}
/> />
<div className={styles.note}>
{t('common.mustBeAtLeast6CharactersLongAndContainAtLeastOneLetterAndNumber')}
</div>
</div>
<div className={styles.text}>{t('common.name')}</div> <div className={styles.text}>{t('common.name')}</div>
<Input <Input
fluid fluid
@@ -3,6 +3,12 @@
margin-bottom: 8px; margin-bottom: 8px;
} }
.note {
font-size: 11px;
margin-top: 4px;
opacity: 0.5;
}
.text { .text {
color: #444444; color: #444444;
font-size: 12px; font-size: 12px;
+1 -1
View File
@@ -2,7 +2,7 @@ const PASSWORD_REGEX = /^(?=.*[A-Za-z])(?=.*\d).+$/;
const USERNAME_REGEX = /^[a-zA-Z0-9]+((_|\.)?[a-zA-Z0-9])*$/; const USERNAME_REGEX = /^[a-zA-Z0-9]+((_|\.)?[a-zA-Z0-9])*$/;
export const isPassword = (string) => { export const isPassword = (string) => {
return string.length >= 3 && PASSWORD_REGEX.test(string); return string.length >= 6 && PASSWORD_REGEX.test(string);
}; };
export const isUsername = (string) => { export const isUsername = (string) => {
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "planka", "name": "planka",
"version": "1.7.4", "version": "1.7.6",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "planka", "name": "planka",
"version": "1.7.4", "version": "1.7.6",
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "planka", "name": "planka",
"version": "1.7.4", "version": "1.7.6",
"private": true, "private": true,
"homepage": "https://plankanban.github.io/planka", "homepage": "https://plankanban.github.io/planka",
"repository": { "repository": {