/
users.js
153 lines (144 loc) · 2.96 KB
/
users.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
/**
* Users actions.
* @module actions/users/users
*/
import {
CREATE_USER,
DELETE_USER,
GET_USER,
LIST_USERS,
UPDATE_USER,
UPDATE_PASSWORD,
INITIAL_PASSWORD,
RESET_PASSWORD,
} from '@plone/volto/constants/ActionTypes';
/**
* Create user function.
* @function createUser
* @param {Object|Array} content User data.
* @returns {Object} Create user action.
*/
export function createUser(content) {
return {
type: CREATE_USER,
request: {
op: 'post',
path: '/@users',
data: content,
},
};
}
/**
* Delete user function.
* @function deleteUser
* @param {string} id User id
* @returns {Object} Delete user action.
*/
export function deleteUser(id) {
return {
type: DELETE_USER,
request: {
op: 'del',
path: `/@users/${id}`,
},
};
}
/**
* Get user function
* @function getUser
* @param {string} id User id
* @returns {Object} Get user action
*/
export function getUser(id) {
return {
type: GET_USER,
request: {
op: 'get',
path: `/@users/${id}`,
},
};
}
/**
* List users function
* @function listUsers
* @param {string} query Query
* @returns {Object} List users action
*/
export function listUsers(query) {
return {
type: LIST_USERS,
request: query
? { op: 'get', path: `/@users?query=${query}` }
: { op: 'get', path: '/@users' },
};
}
/**
* Update user function
* @function updateUser
* @param {string} id User id
* @param {Object} user User data.
* @returns {Object} Update user action.
*/
export function updateUser(id, user) {
return {
type: UPDATE_USER,
request: { op: 'patch', path: `/@users/${id}`, data: user },
};
}
/**
* Update password function
* @function updatePassword
* @param {string} id User id
* @param {string} oldPassword Old password.
* @param {string} newPassword New password.
* @returns {Object} Update password action.
*/
export function updatePassword(id, oldPassword, newPassword) {
return {
type: UPDATE_PASSWORD,
request: {
op: 'post',
path: `/@users/${id}/reset-password`,
data: {
old_password: oldPassword,
new_password: newPassword,
},
},
};
}
/**
* Set initial password function
* @function setInitialPassword
* @param {string} id User id
* @param {string} token One time user token.
* @param {string} newPassword New password.
* @returns {Object} Set initial password action.
*/
export function setInitialPassword(id, token, newPassword) {
return {
type: INITIAL_PASSWORD,
request: {
op: 'post',
path: `/@users/${id}/reset-password`,
data: {
reset_token: token,
new_password: newPassword,
},
},
};
}
/**
* Reset password function
* @function resetPassword
* @param {string} id User id
* @returns {Object} Reset password action.
*/
export function resetPassword(id) {
return {
type: RESET_PASSWORD,
request: {
op: 'post',
path: `/@users/${id}/reset-password`,
},
};
}