[FIX] Split get settings into two requests (#2017)
* [FIX] Split get settings into two requests * [FIX] Clear settings only when change server * [IMPROVEMENT] Move the way to clear settings * [REVERT] Revert some changes * [FIX] Server Icon Co-authored-by: Diego Mello <diegolmello@gmail.com>
This commit is contained in:
parent
2e65a795df
commit
00a21808ed
|
@ -13,6 +13,22 @@ import fetch from '../../utils/fetch';
|
||||||
|
|
||||||
const serverInfoKeys = ['Site_Name', 'UI_Use_Real_Name', 'FileUpload_MediaTypeWhiteList', 'FileUpload_MaxFileSize'];
|
const serverInfoKeys = ['Site_Name', 'UI_Use_Real_Name', 'FileUpload_MediaTypeWhiteList', 'FileUpload_MaxFileSize'];
|
||||||
|
|
||||||
|
// these settings are used only on onboarding process
|
||||||
|
const loginSettings = [
|
||||||
|
'API_Gitlab_URL',
|
||||||
|
'CAS_enabled',
|
||||||
|
'CAS_login_url',
|
||||||
|
'Accounts_EmailVerification',
|
||||||
|
'Accounts_ManuallyApproveNewUsers',
|
||||||
|
'Accounts_ShowFormLogin',
|
||||||
|
'Site_Url',
|
||||||
|
'Accounts_RegistrationForm',
|
||||||
|
'Accounts_RegistrationForm_LinkReplacementText',
|
||||||
|
'Accounts_EmailOrUsernamePlaceholder',
|
||||||
|
'Accounts_PasswordPlaceholder',
|
||||||
|
'Accounts_PasswordReset'
|
||||||
|
];
|
||||||
|
|
||||||
const serverInfoUpdate = async(serverInfo, iconSetting) => {
|
const serverInfoUpdate = async(serverInfo, iconSetting) => {
|
||||||
const serversDB = database.servers;
|
const serversDB = database.servers;
|
||||||
const serverId = reduxStore.getState().server.server;
|
const serverId = reduxStore.getState().server.server;
|
||||||
|
@ -54,7 +70,7 @@ const serverInfoUpdate = async(serverInfo, iconSetting) => {
|
||||||
|
|
||||||
export async function getLoginSettings({ server }) {
|
export async function getLoginSettings({ server }) {
|
||||||
try {
|
try {
|
||||||
const settingsParams = JSON.stringify(['Accounts_ShowFormLogin', 'Accounts_RegistrationForm']);
|
const settingsParams = JSON.stringify(loginSettings);
|
||||||
const result = await fetch(`${ server }/api/v1/settings.public?query={"_id":{"$in":${ settingsParams }}}`).then(response => response.json());
|
const result = await fetch(`${ server }/api/v1/settings.public?query={"_id":{"$in":${ settingsParams }}}`).then(response => response.json());
|
||||||
|
|
||||||
if (result.success && result.settings.length) {
|
if (result.success && result.settings.length) {
|
||||||
|
@ -84,7 +100,7 @@ export async function setSettings() {
|
||||||
export default async function() {
|
export default async function() {
|
||||||
try {
|
try {
|
||||||
const db = database.active;
|
const db = database.active;
|
||||||
const settingsParams = JSON.stringify(Object.keys(settings));
|
const settingsParams = JSON.stringify(Object.keys(settings).filter(key => !loginSettings.includes(key)));
|
||||||
// RC 0.60.0
|
// RC 0.60.0
|
||||||
const result = await fetch(`${ this.sdk.client.host }/api/v1/settings.public?query={"_id":{"$in":${ settingsParams }}}`).then(response => response.json());
|
const result = await fetch(`${ this.sdk.client.host }/api/v1/settings.public?query={"_id":{"$in":${ settingsParams }}}`).then(response => response.json());
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,8 @@ import * as actions from '../actions';
|
||||||
import {
|
import {
|
||||||
serverFailure, selectServerRequest, selectServerSuccess, selectServerFailure
|
serverFailure, selectServerRequest, selectServerSuccess, selectServerFailure
|
||||||
} from '../actions/server';
|
} from '../actions/server';
|
||||||
import { setUser } from '../actions/login';
|
|
||||||
import { clearSettings } from '../actions/settings';
|
import { clearSettings } from '../actions/settings';
|
||||||
|
import { setUser } from '../actions/login';
|
||||||
import RocketChat from '../lib/rocketchat';
|
import RocketChat from '../lib/rocketchat';
|
||||||
import database from '../lib/database';
|
import database from '../lib/database';
|
||||||
import log, { logServerVersion } from '../utils/log';
|
import log, { logServerVersion } from '../utils/log';
|
||||||
|
@ -98,9 +98,8 @@ const handleSelectServer = function* handleSelectServer({ server, version, fetch
|
||||||
const basicAuth = yield RNUserDefaults.get(`${ BASIC_AUTH_KEY }-${ server }`);
|
const basicAuth = yield RNUserDefaults.get(`${ BASIC_AUTH_KEY }-${ server }`);
|
||||||
setBasicAuth(basicAuth);
|
setBasicAuth(basicAuth);
|
||||||
|
|
||||||
yield put(clearSettings());
|
|
||||||
|
|
||||||
if (user) {
|
if (user) {
|
||||||
|
yield put(clearSettings());
|
||||||
yield RocketChat.connect({ server, user, logoutOnError: true });
|
yield RocketChat.connect({ server, user, logoutOnError: true });
|
||||||
yield put(setUser(user));
|
yield put(setUser(user));
|
||||||
yield put(actions.appStart('inside'));
|
yield put(actions.appStart('inside'));
|
||||||
|
|
Loading…
Reference in New Issue