feat: Add internal runtime configuration
This commit is contained in:
+16
@@ -0,0 +1,16 @@
|
||||
/*!
|
||||
* Copyright (c) 2024 PLANKA Software GmbH
|
||||
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
||||
*/
|
||||
|
||||
import { put } from 'redux-saga/effects';
|
||||
|
||||
import actions from '../../../actions';
|
||||
|
||||
export function* handleBootstrapUpdate(bootstrap) {
|
||||
yield put(actions.handleBootstrapUpdate(bootstrap));
|
||||
}
|
||||
|
||||
export default {
|
||||
handleBootstrapUpdate,
|
||||
};
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
import router from './router';
|
||||
import socket from './socket';
|
||||
import bootstrap from './bootstrap';
|
||||
import core from './core';
|
||||
import modals from './modals';
|
||||
import config from './config';
|
||||
@@ -33,6 +34,7 @@ import notificationServices from './notification-services';
|
||||
export default {
|
||||
...router,
|
||||
...socket,
|
||||
...bootstrap,
|
||||
...core,
|
||||
...modals,
|
||||
...config,
|
||||
|
||||
@@ -16,6 +16,17 @@ import mergeRecords from '../../../utils/merge-records';
|
||||
import { isUserAdminOrProjectOwner } from '../../../utils/record-helpers';
|
||||
import { UserRoles } from '../../../constants/Enums';
|
||||
|
||||
export function* handleUsersReset() {
|
||||
let users;
|
||||
try {
|
||||
({ items: users } = yield call(request, api.getUsers));
|
||||
} catch {
|
||||
return;
|
||||
}
|
||||
|
||||
yield put(actions.handleUsersReset(users));
|
||||
}
|
||||
|
||||
export function* createUser(data) {
|
||||
yield put(actions.createUser(data));
|
||||
|
||||
@@ -491,6 +502,7 @@ export function* removeUserFromFilterInCurrentBoard(id) {
|
||||
}
|
||||
|
||||
export default {
|
||||
handleUsersReset,
|
||||
createUser,
|
||||
handleUserCreate,
|
||||
clearUserCreateError,
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
/*!
|
||||
* Copyright (c) 2024 PLANKA Software GmbH
|
||||
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
||||
*/
|
||||
|
||||
import { all, takeEvery } from 'redux-saga/effects';
|
||||
|
||||
import services from '../services';
|
||||
import EntryActionTypes from '../../../constants/EntryActionTypes';
|
||||
|
||||
export default function* bootstrapWatchers() {
|
||||
yield all([
|
||||
takeEvery(EntryActionTypes.BOOTSTRAP_UPDATE_HANDLE, ({ payload: { bootstrap } }) =>
|
||||
services.handleBootstrapUpdate(bootstrap),
|
||||
),
|
||||
]);
|
||||
}
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
import router from './router';
|
||||
import socket from './socket';
|
||||
import bootstrap from './bootstrap';
|
||||
import core from './core';
|
||||
import modals from './modals';
|
||||
import config from './config';
|
||||
@@ -33,6 +34,7 @@ import notificationServices from './notification-services';
|
||||
export default [
|
||||
router,
|
||||
socket,
|
||||
bootstrap,
|
||||
core,
|
||||
modals,
|
||||
config,
|
||||
|
||||
@@ -25,6 +25,10 @@ const createSocketEventsChannel = () =>
|
||||
emit(entryActions.logout(false));
|
||||
};
|
||||
|
||||
const handleBootstrapUpdate = ({ item }) => {
|
||||
emit(entryActions.handleBootstrapUpdate(item));
|
||||
};
|
||||
|
||||
const handleConfigUpdate = ({ item }) => {
|
||||
emit(entryActions.handleConfigUpdate(item));
|
||||
};
|
||||
@@ -41,6 +45,10 @@ const createSocketEventsChannel = () =>
|
||||
emit(entryActions.handleWebhookDelete(item));
|
||||
};
|
||||
|
||||
const handleUsersReset = () => {
|
||||
emit(entryActions.handleUsersReset());
|
||||
};
|
||||
|
||||
const handleUserCreate = ({ item }) => {
|
||||
emit(entryActions.handleUserCreate(item));
|
||||
};
|
||||
@@ -290,12 +298,15 @@ const createSocketEventsChannel = () =>
|
||||
|
||||
socket.on('logout', handleLogout);
|
||||
|
||||
socket.on('bootstrapUpdate', handleBootstrapUpdate);
|
||||
|
||||
socket.on('configUpdate', handleConfigUpdate);
|
||||
|
||||
socket.on('webhookCreate', handleWebhookCreate);
|
||||
socket.on('webhookUpdate', handleWebhookUpdate);
|
||||
socket.on('webhookDelete', handleWebhookDelete);
|
||||
|
||||
socket.on('usersReset', handleUsersReset);
|
||||
socket.on('userCreate', handleUserCreate);
|
||||
socket.on('userUpdate', handleUserUpdate);
|
||||
socket.on('userDelete', handleUserDelete);
|
||||
@@ -384,12 +395,15 @@ const createSocketEventsChannel = () =>
|
||||
|
||||
socket.off('logout', handleLogout);
|
||||
|
||||
socket.off('bootstrapUpdate', handleBootstrapUpdate);
|
||||
|
||||
socket.off('configUpdate', handleConfigUpdate);
|
||||
|
||||
socket.off('webhookCreate', handleWebhookCreate);
|
||||
socket.off('webhookUpdate', handleWebhookUpdate);
|
||||
socket.off('webhookDelete', handleWebhookDelete);
|
||||
|
||||
socket.off('usersReset', handleUsersReset);
|
||||
socket.off('userCreate', handleUserCreate);
|
||||
socket.off('userUpdate', handleUserUpdate);
|
||||
socket.off('userDelete', handleUserDelete);
|
||||
|
||||
@@ -10,6 +10,7 @@ import EntryActionTypes from '../../../constants/EntryActionTypes';
|
||||
|
||||
export default function* usersWatchers() {
|
||||
yield all([
|
||||
takeEvery(EntryActionTypes.USERS_RESET_HANDLE, () => services.handleUsersReset()),
|
||||
takeEvery(EntryActionTypes.USER_CREATE, ({ payload: { data } }) => services.createUser(data)),
|
||||
takeEvery(EntryActionTypes.USER_CREATE_HANDLE, ({ payload: { user } }) =>
|
||||
services.handleUserCreate(user),
|
||||
|
||||
Reference in New Issue
Block a user