diff options
Diffstat (limited to 'server/helpers/custom-validators/users.ts')
-rw-r--r-- | server/helpers/custom-validators/users.ts | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/server/helpers/custom-validators/users.ts b/server/helpers/custom-validators/users.ts new file mode 100644 index 000000000..8fd2dac4f --- /dev/null +++ b/server/helpers/custom-validators/users.ts | |||
@@ -0,0 +1,34 @@ | |||
1 | import { values } from 'lodash' | ||
2 | import expressValidator = require('express-validator') | ||
3 | // TODO: use .validator when express-validator typing will have validator field | ||
4 | const validator = expressValidator['validator'] | ||
5 | |||
6 | import { CONSTRAINTS_FIELDS, USER_ROLES } from '../../initializers' | ||
7 | const USERS_CONSTRAINTS_FIELDS = CONSTRAINTS_FIELDS.USERS | ||
8 | |||
9 | function isUserPasswordValid (value) { | ||
10 | return validator.isLength(value, USERS_CONSTRAINTS_FIELDS.PASSWORD) | ||
11 | } | ||
12 | |||
13 | function isUserRoleValid (value) { | ||
14 | return values(USER_ROLES).indexOf(value) !== -1 | ||
15 | } | ||
16 | |||
17 | function isUserUsernameValid (value) { | ||
18 | const max = USERS_CONSTRAINTS_FIELDS.USERNAME.max | ||
19 | const min = USERS_CONSTRAINTS_FIELDS.USERNAME.min | ||
20 | return validator.matches(value, new RegExp(`^[a-zA-Z0-9._]{${min},${max}}$`)) | ||
21 | } | ||
22 | |||
23 | function isUserDisplayNSFWValid (value) { | ||
24 | return validator.isBoolean(value) | ||
25 | } | ||
26 | |||
27 | // --------------------------------------------------------------------------- | ||
28 | |||
29 | export { | ||
30 | isUserPasswordValid, | ||
31 | isUserRoleValid, | ||
32 | isUserUsernameValid, | ||
33 | isUserDisplayNSFWValid | ||
34 | } | ||