180 lines
4.6 KiB
JavaScript
180 lines
4.6 KiB
JavaScript
import api from '../api';
|
|
|
|
export const TOTP_SETTINGS_FETCH_REQUEST = 'TOTP_SETTINGS_FETCH_REQUEST';
|
|
export const TOTP_SETTINGS_FETCH_SUCCESS = 'TOTP_SETTINGS_FETCH_SUCCESS';
|
|
export const TOTP_SETTINGS_FETCH_FAIL = 'TOTP_SETTINGS_FETCH_FAIL';
|
|
|
|
export const BACKUP_CODES_FETCH_REQUEST = 'BACKUP_CODES_FETCH_REQUEST';
|
|
export const BACKUP_CODES_FETCH_SUCCESS = 'BACKUP_CODES_FETCH_SUCCESS';
|
|
export const BACKUP_CODES_FETCH_FAIL = 'BACKUP_CODES_FETCH_FAIL';
|
|
|
|
export const TOTP_SETUP_FETCH_REQUEST = 'TOTP_SETUP_FETCH_REQUEST';
|
|
export const TOTP_SETUP_FETCH_SUCCESS = 'TOTP_SETUP_FETCH_SUCCESS';
|
|
export const TOTP_SETUP_FETCH_FAIL = 'TOTP_SETUP_FETCH_FAIL';
|
|
|
|
export const CONFIRM_TOTP_REQUEST = 'CONFIRM_TOTP_REQUEST';
|
|
export const CONFIRM_TOTP_SUCCESS = 'CONFIRM_TOTP_SUCCESS';
|
|
export const CONFIRM_TOTP_FAIL = 'CONFIRM_TOTP_FAIL';
|
|
|
|
export const DISABLE_TOTP_REQUEST = 'DISABLE_TOTP_REQUEST';
|
|
export const DISABLE_TOTP_SUCCESS = 'DISABLE_TOTP_SUCCESS';
|
|
export const DISABLE_TOTP_FAIL = 'DISABLE_TOTP_FAIL';
|
|
|
|
export function fetchUserMfaSettings() {
|
|
return (dispatch, getState) => {
|
|
dispatch({ type: TOTP_SETTINGS_FETCH_REQUEST });
|
|
return api(getState).get('/api/pleroma/accounts/mfa').then(response => {
|
|
dispatch({ type: TOTP_SETTINGS_FETCH_SUCCESS, totpEnabled: response.data.totp });
|
|
return response;
|
|
}).catch(error => {
|
|
dispatch({ type: TOTP_SETTINGS_FETCH_FAIL });
|
|
});
|
|
};
|
|
}
|
|
|
|
export function fetchUserMfaSettingsRequest() {
|
|
return {
|
|
type: TOTP_SETTINGS_FETCH_REQUEST,
|
|
};
|
|
};
|
|
|
|
export function fetchUserMfaSettingsSuccess() {
|
|
return {
|
|
type: TOTP_SETTINGS_FETCH_SUCCESS,
|
|
};
|
|
};
|
|
|
|
export function fetchUserMfaSettingsFail() {
|
|
return {
|
|
type: TOTP_SETTINGS_FETCH_FAIL,
|
|
};
|
|
};
|
|
|
|
export function fetchBackupCodes() {
|
|
return (dispatch, getState) => {
|
|
dispatch({ type: BACKUP_CODES_FETCH_REQUEST });
|
|
return api(getState).get('/api/pleroma/accounts/mfa/backup_codes').then(response => {
|
|
dispatch({ type: BACKUP_CODES_FETCH_SUCCESS, backup_codes: response.data });
|
|
return response;
|
|
}).catch(error => {
|
|
dispatch({ type: BACKUP_CODES_FETCH_FAIL });
|
|
});
|
|
};
|
|
}
|
|
|
|
export function fetchBackupCodesRequest() {
|
|
return {
|
|
type: BACKUP_CODES_FETCH_REQUEST,
|
|
};
|
|
};
|
|
|
|
export function fetchBackupCodesSuccess(backup_codes, response) {
|
|
return {
|
|
type: BACKUP_CODES_FETCH_SUCCESS,
|
|
backup_codes: response.data,
|
|
};
|
|
};
|
|
|
|
export function fetchBackupCodesFail(error) {
|
|
return {
|
|
type: BACKUP_CODES_FETCH_FAIL,
|
|
error,
|
|
};
|
|
};
|
|
|
|
export function fetchToptSetup() {
|
|
return (dispatch, getState) => {
|
|
dispatch({ type: TOTP_SETUP_FETCH_REQUEST });
|
|
return api(getState).get('/api/pleroma/accounts/mfa/setup/totp').then(response => {
|
|
dispatch({ type: TOTP_SETUP_FETCH_SUCCESS, totp_setup: response.data });
|
|
return response;
|
|
}).catch(error => {
|
|
dispatch({ type: TOTP_SETUP_FETCH_FAIL });
|
|
});
|
|
};
|
|
}
|
|
|
|
export function fetchToptSetupRequest() {
|
|
return {
|
|
type: TOTP_SETUP_FETCH_REQUEST,
|
|
};
|
|
};
|
|
|
|
export function fetchToptSetupSuccess(totp_setup, response) {
|
|
return {
|
|
type: TOTP_SETUP_FETCH_SUCCESS,
|
|
totp_setup: response.data,
|
|
};
|
|
};
|
|
|
|
export function fetchToptSetupFail(error) {
|
|
return {
|
|
type: TOTP_SETUP_FETCH_FAIL,
|
|
error,
|
|
};
|
|
};
|
|
|
|
export function confirmToptSetup(code, password) {
|
|
return (dispatch, getState) => {
|
|
dispatch({ type: CONFIRM_TOTP_REQUEST, code });
|
|
return api(getState).post('/api/pleroma/accounts/mfa/confirm/totp', {
|
|
code,
|
|
password,
|
|
}).then(response => {
|
|
dispatch({ type: CONFIRM_TOTP_SUCCESS });
|
|
return response;
|
|
}).catch(error => {
|
|
dispatch({ type: CONFIRM_TOTP_FAIL });
|
|
});
|
|
};
|
|
}
|
|
|
|
export function confirmToptRequest() {
|
|
return {
|
|
type: CONFIRM_TOTP_REQUEST,
|
|
};
|
|
};
|
|
|
|
export function confirmToptSuccess(backup_codes, response) {
|
|
return {
|
|
type: CONFIRM_TOTP_SUCCESS,
|
|
};
|
|
};
|
|
|
|
export function confirmToptFail(error) {
|
|
return {
|
|
type: CONFIRM_TOTP_FAIL,
|
|
error,
|
|
};
|
|
};
|
|
|
|
export function disableToptSetup(password) {
|
|
return (dispatch, getState) => {
|
|
dispatch({ type: DISABLE_TOTP_REQUEST });
|
|
return api(getState).delete('/api/pleroma/accounts/mfa/totp', { data: { password } }).then(response => {
|
|
dispatch({ type: DISABLE_TOTP_SUCCESS });
|
|
return response;
|
|
}).catch(error => {
|
|
dispatch({ type: DISABLE_TOTP_FAIL });
|
|
});
|
|
};
|
|
}
|
|
|
|
export function disableToptRequest() {
|
|
return {
|
|
type: DISABLE_TOTP_REQUEST,
|
|
};
|
|
};
|
|
|
|
export function disableToptSuccess(backup_codes, response) {
|
|
return {
|
|
type: DISABLE_TOTP_SUCCESS,
|
|
};
|
|
};
|
|
|
|
export function disableToptFail(error) {
|
|
return {
|
|
type: DISABLE_TOTP_FAIL,
|
|
error,
|
|
};
|
|
};
|