aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/helpers/custom-validators/users.ts
diff options
context:
space:
mode:
Diffstat (limited to 'server/helpers/custom-validators/users.ts')
-rw-r--r--server/helpers/custom-validators/users.ts34
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 @@
1import { values } from 'lodash'
2import expressValidator = require('express-validator')
3// TODO: use .validator when express-validator typing will have validator field
4const validator = expressValidator['validator']
5
6import { CONSTRAINTS_FIELDS, USER_ROLES } from '../../initializers'
7const USERS_CONSTRAINTS_FIELDS = CONSTRAINTS_FIELDS.USERS
8
9function isUserPasswordValid (value) {
10 return validator.isLength(value, USERS_CONSTRAINTS_FIELDS.PASSWORD)
11}
12
13function isUserRoleValid (value) {
14 return values(USER_ROLES).indexOf(value) !== -1
15}
16
17function 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
23function isUserDisplayNSFWValid (value) {
24 return validator.isBoolean(value)
25}
26
27// ---------------------------------------------------------------------------
28
29export {
30 isUserPasswordValid,
31 isUserRoleValid,
32 isUserUsernameValid,
33 isUserDisplayNSFWValid
34}