2019-11-12 11:55:22 +00:00
|
|
|
import { request } from "../client";
|
|
|
|
//import axios from "axios";
|
|
|
|
import Filter from "./filter";
|
2019-12-06 13:37:04 +00:00
|
|
|
import * as fakePeople from "./fake";
|
2021-11-09 16:32:15 +00:00
|
|
|
import { Encoder } from "../../utils/encoder";
|
2019-12-06 13:37:04 +00:00
|
|
|
|
|
|
|
export function getUserList(filter = Filter.getDefault(), fake = false) {
|
2020-10-08 07:28:36 +00:00
|
|
|
if (fake) {
|
|
|
|
return fakePeople.getUserList(filter);
|
|
|
|
}
|
|
|
|
|
|
|
|
const params =
|
|
|
|
filter && filter instanceof Filter
|
2021-03-20 10:16:45 +00:00
|
|
|
? `/filter.json?${filter.toApiUrlParams(
|
|
|
|
"id,status,isAdmin,isOwner,isVisitor,activationStatus,userName,email,mobilePhone,displayName,avatar,listAdminModules,birthday,title,location,isLDAP,isSSO,groups"
|
|
|
|
)}`
|
2020-10-08 07:28:36 +00:00
|
|
|
: "";
|
|
|
|
|
|
|
|
return request({
|
|
|
|
method: "get",
|
2020-10-16 12:38:04 +00:00
|
|
|
url: `/people${params}`,
|
2021-11-09 16:32:15 +00:00
|
|
|
}).then((res) => {
|
|
|
|
res.items = res.items.map((user) => {
|
|
|
|
if (user && user.displayName) {
|
|
|
|
user.displayName = Encoder.htmlDecode(user.displayName);
|
|
|
|
}
|
|
|
|
return user;
|
|
|
|
});
|
|
|
|
return res;
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function getUser(userName = null) {
|
|
|
|
return request({
|
|
|
|
method: "get",
|
2020-10-16 12:38:04 +00:00
|
|
|
url: `/people/${userName || "@self"}.json`,
|
2021-08-13 17:32:50 +00:00
|
|
|
skipUnauthorized: true,
|
2021-11-09 16:32:15 +00:00
|
|
|
}).then((user) => {
|
|
|
|
if (user && user.displayName) {
|
|
|
|
user.displayName = Encoder.htmlDecode(user.displayName);
|
|
|
|
}
|
|
|
|
return user;
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
export function getUserPhoto(userId) {
|
|
|
|
return request({
|
|
|
|
method: "get",
|
2020-10-16 12:38:04 +00:00
|
|
|
url: `/people/${userId}/photo`,
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function createUser(data, confirmKey = null) {
|
|
|
|
const options = {
|
|
|
|
method: "post",
|
|
|
|
url: "/people",
|
2020-10-16 12:38:04 +00:00
|
|
|
data: data,
|
2020-10-08 07:28:36 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
if (confirmKey) options.headers = { confirm: confirmKey };
|
|
|
|
|
2021-11-13 17:18:58 +00:00
|
|
|
return request(options).then((user) => {
|
|
|
|
if (user && user.displayName) {
|
|
|
|
user.displayName = Encoder.htmlDecode(user.displayName);
|
|
|
|
}
|
|
|
|
return user;
|
|
|
|
});
|
2020-10-08 07:28:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
export function changePassword(userId, passwordHash, key) {
|
|
|
|
const data = { passwordHash };
|
|
|
|
|
|
|
|
return request({
|
|
|
|
method: "put",
|
|
|
|
url: `/people/${userId}/password`,
|
|
|
|
data,
|
2020-10-16 12:38:04 +00:00
|
|
|
headers: { confirm: key },
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function changeEmail(userId, email, key) {
|
|
|
|
const data = { email };
|
|
|
|
|
|
|
|
return request({
|
|
|
|
method: "put",
|
|
|
|
url: `/people/${userId}/password`,
|
|
|
|
data,
|
2020-10-16 12:38:04 +00:00
|
|
|
headers: { confirm: key },
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
export function updateActivationStatus(activationStatus, userId, key) {
|
|
|
|
return request({
|
|
|
|
method: "put",
|
|
|
|
url: `/people/activationstatus/${activationStatus}.json`,
|
|
|
|
data: { userIds: [userId] },
|
2020-10-16 12:38:04 +00:00
|
|
|
headers: { confirm: key },
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function updateUser(data) {
|
|
|
|
return request({
|
|
|
|
method: "put",
|
|
|
|
url: `/people/${data.id}`,
|
2020-10-16 12:38:04 +00:00
|
|
|
data,
|
2021-11-13 17:18:58 +00:00
|
|
|
}).then((user) => {
|
|
|
|
if (user && user.displayName) {
|
|
|
|
user.displayName = Encoder.htmlDecode(user.displayName);
|
|
|
|
}
|
|
|
|
return user;
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function deleteSelf(key) {
|
|
|
|
return request({
|
|
|
|
method: "delete",
|
|
|
|
url: "/people/@self",
|
2020-10-16 12:38:04 +00:00
|
|
|
headers: { confirm: key },
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function sendInstructionsToChangePassword(email) {
|
|
|
|
return request({
|
|
|
|
method: "post",
|
|
|
|
url: "/people/password.json",
|
2020-10-16 12:38:04 +00:00
|
|
|
data: { email },
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function getListAdmins(filter = Filter.getDefault()) {
|
2021-03-20 10:16:45 +00:00
|
|
|
const filterParams = filter.toApiUrlParams(
|
|
|
|
"fields=id,displayName,groups,name,avatar,avatarSmall,isOwner,isAdmin,profileUrl,listAdminModules"
|
|
|
|
);
|
|
|
|
|
2020-10-08 07:28:36 +00:00
|
|
|
return request({
|
|
|
|
method: "get",
|
2021-04-29 06:40:55 +00:00
|
|
|
url: `/people/filter.json?isadministrator=true&${filterParams}`,
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function getAdmins(isParams) {
|
|
|
|
let params = "&fields";
|
|
|
|
if (isParams) {
|
|
|
|
params =
|
2019-11-14 13:37:41 +00:00
|
|
|
"fields=id,displayName,groups,name,avatar,avatarSmall,isOwner,isAdmin,profileUrl,listAdminModules";
|
|
|
|
}
|
2020-10-08 07:28:36 +00:00
|
|
|
return request({
|
|
|
|
method: "get",
|
2020-10-16 12:38:04 +00:00
|
|
|
url: `/people/filter.json?isadministrator=true&${params}`,
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function changeProductAdmin(userId, productId, administrator) {
|
|
|
|
return request({
|
|
|
|
method: "put",
|
|
|
|
url: "/settings/security/administrator",
|
|
|
|
data: {
|
|
|
|
productId,
|
|
|
|
userId,
|
2020-10-16 12:38:04 +00:00
|
|
|
administrator,
|
|
|
|
},
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function getUserById(userId) {
|
|
|
|
return request({
|
|
|
|
method: "get",
|
2020-10-16 12:38:04 +00:00
|
|
|
url: `/people/${userId}`,
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function resendUserInvites(userIds) {
|
|
|
|
return request({
|
|
|
|
method: "put",
|
|
|
|
url: "/people/invite",
|
2020-10-16 12:38:04 +00:00
|
|
|
data: { userIds },
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function updateUserCulture(id, cultureName) {
|
|
|
|
return request({
|
|
|
|
method: "put",
|
|
|
|
url: `/people/${id}/culture`,
|
2020-10-16 12:38:04 +00:00
|
|
|
data: { cultureName },
|
2021-11-10 18:31:39 +00:00
|
|
|
}).then((user) => {
|
|
|
|
if (user && user.displayName) {
|
|
|
|
user.displayName = Encoder.htmlDecode(user.displayName);
|
|
|
|
}
|
|
|
|
return user;
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function loadAvatar(profileId, data) {
|
|
|
|
return request({
|
|
|
|
method: "post",
|
|
|
|
url: `/people/${profileId}/photo`,
|
2020-10-16 12:38:04 +00:00
|
|
|
data,
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function createThumbnailsAvatar(profileId, data) {
|
|
|
|
return request({
|
|
|
|
method: "post",
|
|
|
|
url: `/people/${profileId}/photo/thumbnails.json`,
|
2020-10-16 12:38:04 +00:00
|
|
|
data,
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function deleteAvatar(profileId) {
|
|
|
|
return request({
|
|
|
|
method: "delete",
|
2020-10-16 12:38:04 +00:00
|
|
|
url: `/people/${profileId}/photo`,
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function updateUserStatus(status, userIds) {
|
|
|
|
return request({
|
|
|
|
method: "put",
|
|
|
|
url: `/people/status/${status}`,
|
2020-10-16 12:38:04 +00:00
|
|
|
data: { userIds },
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function updateUserType(type, userIds) {
|
|
|
|
return request({
|
|
|
|
method: "put",
|
|
|
|
url: `/people/type/${type}`,
|
2020-10-16 12:38:04 +00:00
|
|
|
data: { userIds },
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-04-22 10:34:42 +00:00
|
|
|
export function linkOAuth(serializedProfile) {
|
2021-03-24 11:19:46 +00:00
|
|
|
return request({
|
|
|
|
method: "put",
|
|
|
|
url: "people/thirdparty/linkaccount.json",
|
2021-04-21 13:31:18 +00:00
|
|
|
data: { serializedProfile },
|
2021-03-24 11:19:46 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-04-22 10:34:42 +00:00
|
|
|
export function signupOAuth(signupAccount) {
|
2021-04-16 13:34:24 +00:00
|
|
|
return request({
|
|
|
|
method: "post",
|
|
|
|
url: "people/thirdparty/signup.json",
|
|
|
|
data: signupAccount,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2021-04-22 10:34:42 +00:00
|
|
|
export function unlinkOAuth(provider) {
|
2021-03-24 13:49:42 +00:00
|
|
|
return request({
|
|
|
|
method: "delete",
|
|
|
|
url: `people/thirdparty/unlinkaccount.json?provider=${provider}`,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2020-10-08 07:28:36 +00:00
|
|
|
export function sendInstructionsToDelete() {
|
|
|
|
return request({
|
|
|
|
method: "put",
|
2020-10-16 12:38:04 +00:00
|
|
|
url: "/people/self/delete.json",
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function sendInstructionsToChangeEmail(userId, email) {
|
|
|
|
return request({
|
|
|
|
method: "post",
|
|
|
|
url: "/people/email.json",
|
2020-10-16 12:38:04 +00:00
|
|
|
data: { userId, email },
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function deleteUser(userId) {
|
|
|
|
return request({
|
|
|
|
method: "delete",
|
2020-10-16 12:38:04 +00:00
|
|
|
url: `/people/${userId}.json`,
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function deleteUsers(userIds) {
|
|
|
|
return request({
|
|
|
|
method: "put",
|
|
|
|
url: "/people/delete.json",
|
2020-10-16 12:38:04 +00:00
|
|
|
data: { userIds },
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function getSelectorUserList() {
|
|
|
|
return request({
|
|
|
|
method: "get",
|
2020-10-16 12:38:04 +00:00
|
|
|
url: "/people/filter.json?fields=id,displayName,groups",
|
2020-10-08 07:28:36 +00:00
|
|
|
});
|
|
|
|
}
|