|
|
|
@ -53,6 +53,16 @@ export const ADMIN_USERS_UNTAG_REQUEST = 'ADMIN_USERS_UNTAG_REQUEST';
|
|
|
|
|
export const ADMIN_USERS_UNTAG_SUCCESS = 'ADMIN_USERS_UNTAG_SUCCESS';
|
|
|
|
|
export const ADMIN_USERS_UNTAG_FAIL = 'ADMIN_USERS_UNTAG_FAIL';
|
|
|
|
|
|
|
|
|
|
export const ADMIN_ADD_PERMISSION_REQUEST = 'ADMIN_ADD_PERMISSION_REQUEST';
|
|
|
|
|
export const ADMIN_ADD_PERMISSION_SUCCESS = 'ADMIN_ADD_PERMISSION_SUCCESS';
|
|
|
|
|
export const ADMIN_ADD_PERMISSION_FAIL = 'ADMIN_ADD_PERMISSION_FAIL';
|
|
|
|
|
|
|
|
|
|
export const ADMIN_REMOVE_PERMISSION_REQUEST = 'ADMIN_REMOVE_PERMISSION_REQUEST';
|
|
|
|
|
export const ADMIN_REMOVE_PERMISSION_SUCCESS = 'ADMIN_REMOVE_PERMISSION_SUCCESS';
|
|
|
|
|
export const ADMIN_REMOVE_PERMISSION_FAIL = 'ADMIN_REMOVE_PERMISSION_FAIL';
|
|
|
|
|
|
|
|
|
|
const nicknamesFromIds = (getState, ids) => ids.map(id => getState().getIn(['accounts', id, 'acct']));
|
|
|
|
|
|
|
|
|
|
export function fetchConfig() {
|
|
|
|
|
return (dispatch, getState) => {
|
|
|
|
|
dispatch({ type: ADMIN_CONFIG_FETCH_REQUEST });
|
|
|
|
@ -208,7 +218,7 @@ export function fetchModerationLog(params) {
|
|
|
|
|
|
|
|
|
|
export function tagUsers(accountIds, tags) {
|
|
|
|
|
return (dispatch, getState) => {
|
|
|
|
|
const nicknames = accountIds.map(id => getState().getIn(['accounts', id, 'acct']));
|
|
|
|
|
const nicknames = nicknamesFromIds(getState, accountIds);
|
|
|
|
|
dispatch({ type: ADMIN_USERS_TAG_REQUEST, accountIds, tags });
|
|
|
|
|
return api(getState)
|
|
|
|
|
.put('/api/v1/pleroma/admin/users/tag', { nicknames, tags })
|
|
|
|
@ -222,7 +232,7 @@ export function tagUsers(accountIds, tags) {
|
|
|
|
|
|
|
|
|
|
export function untagUsers(accountIds, tags) {
|
|
|
|
|
return (dispatch, getState) => {
|
|
|
|
|
const nicknames = accountIds.map(id => getState().getIn(['accounts', id, 'acct']));
|
|
|
|
|
const nicknames = nicknamesFromIds(getState, accountIds);
|
|
|
|
|
dispatch({ type: ADMIN_USERS_UNTAG_REQUEST, accountIds, tags });
|
|
|
|
|
return api(getState)
|
|
|
|
|
.delete('/api/v1/pleroma/admin/users/tag', { data: { nicknames, tags } })
|
|
|
|
@ -233,3 +243,58 @@ export function untagUsers(accountIds, tags) {
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function addPermission(accountIds, permissionGroup) {
|
|
|
|
|
return (dispatch, getState) => {
|
|
|
|
|
const nicknames = nicknamesFromIds(getState, accountIds);
|
|
|
|
|
dispatch({ type: ADMIN_ADD_PERMISSION_REQUEST, accountIds, permissionGroup });
|
|
|
|
|
return api(getState)
|
|
|
|
|
.post(`/api/v1/pleroma/admin/users/permission_group/${permissionGroup}`, { nicknames })
|
|
|
|
|
.then(({ data }) => {
|
|
|
|
|
dispatch({ type: ADMIN_ADD_PERMISSION_SUCCESS, accountIds, permissionGroup, data });
|
|
|
|
|
}).catch(error => {
|
|
|
|
|
dispatch({ type: ADMIN_ADD_PERMISSION_FAIL, error, accountIds, permissionGroup });
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function removePermission(accountIds, permissionGroup) {
|
|
|
|
|
return (dispatch, getState) => {
|
|
|
|
|
const nicknames = nicknamesFromIds(getState, accountIds);
|
|
|
|
|
dispatch({ type: ADMIN_REMOVE_PERMISSION_REQUEST, accountIds, permissionGroup });
|
|
|
|
|
return api(getState)
|
|
|
|
|
.delete(`/api/v1/pleroma/admin/users/permission_group/${permissionGroup}`, { data: { nicknames } })
|
|
|
|
|
.then(({ data }) => {
|
|
|
|
|
dispatch({ type: ADMIN_REMOVE_PERMISSION_SUCCESS, accountIds, permissionGroup, data });
|
|
|
|
|
}).catch(error => {
|
|
|
|
|
dispatch({ type: ADMIN_REMOVE_PERMISSION_FAIL, error, accountIds, permissionGroup });
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function promoteToAdmin(accountId) {
|
|
|
|
|
return (dispatch, getState) => {
|
|
|
|
|
return Promise.all([
|
|
|
|
|
dispatch(addPermission([accountId], 'admin')),
|
|
|
|
|
dispatch(removePermission([accountId], 'moderator')),
|
|
|
|
|
]);
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function promoteToModerator(accountId) {
|
|
|
|
|
return (dispatch, getState) => {
|
|
|
|
|
return Promise.all([
|
|
|
|
|
dispatch(removePermission([accountId], 'admin')),
|
|
|
|
|
dispatch(addPermission([accountId], 'moderator')),
|
|
|
|
|
]);
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function demoteToUser(accountId) {
|
|
|
|
|
return (dispatch, getState) => {
|
|
|
|
|
return Promise.all([
|
|
|
|
|
dispatch(removePermission([accountId], 'admin')),
|
|
|
|
|
dispatch(removePermission([accountId], 'moderator')),
|
|
|
|
|
]);
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|