feat: extraOrigins public, remove origin listener

This commit is contained in:
Eli Bosley
2023-11-13 10:39:35 -05:00
parent b4f0a084f1
commit 0fa76f5d09
8 changed files with 33 additions and 11 deletions

View File

@@ -1,5 +1,6 @@
[api]
version="3.2.3+f3d357e6"
version="3.2.3+0aa4e152"
extraOrigins=""
[local]
[notifier]
apikey="unnotify_30994bfaccf839c65bae75f7fa12dd5ee16e69389f754c3b98ed7d5"

View File

@@ -1,5 +1,6 @@
[api]
version="3.2.3+f3d357e6"
version="3.2.3+0aa4e152"
extraOrigins=""
[local]
[notifier]
apikey="unnotify_30994bfaccf839c65bae75f7fa12dd5ee16e69389f754c3b98ed7d5"
@@ -15,7 +16,7 @@ regWizTime="1611175408732_0951-1653-3509-FBA155FA23C0"
idtoken=""
accesstoken=""
refreshtoken=""
allowedOrigins=""
allowedOrigins="/var/run/unraid-notifications.sock, /var/run/unraid-php.sock, /var/run/unraid-cli.sock, http://localhost:8080, https://localhost:4443, https://tower.local:4443, https://192.168.1.150:4443, https://tower:4443, https://192-168-1-150.thisisfourtyrandomcharacters012345678900.myunraid.net:4443, https://85-121-123-122.thisisfourtyrandomcharacters012345678900.myunraid.net:8443, https://10-252-0-1.hash.myunraid.net:4443, https://10-252-1-1.hash.myunraid.net:4443, https://10-253-3-1.hash.myunraid.net:4443, https://10-253-4-1.hash.myunraid.net:4443, https://10-253-5-1.hash.myunraid.net:4443, https://connect.myunraid.net, https://staging.connect.myunraid.net, https://dev-my.myunraid.net:4000, https://studio.apollographql.com"
[upc]
apikey="unupc_fab6ff6ffe51040595c6d9ffb63a353ba16cc2ad7d93f813a2e80a5810"
[connectionStatus]

View File

@@ -1,3 +1,4 @@
import { getAllowedOrigins } from '@app/common/allowed-origins';
import { DynamicRemoteAccessType } from '@app/remoteAccess/types';
import {
type SliceState as ConfigSliceState,
@@ -35,7 +36,7 @@ export const getWriteableConfig = <T extends ConfigType>(
const newState: ConfigObject<T> = {
api: {
version: api.version ?? initialState.api.version,
...(api.extraOrigins ? { extraOrigins: api.extraOrigins } : {}),
extraOrigins: api.extraOrigins ?? initialState.api.extraOrigins,
},
local: {
...(local?.['2Fa'] === 'yes' ? { '2Fa': local['2Fa'] } : {}),
@@ -61,8 +62,7 @@ export const getWriteableConfig = <T extends ConfigType>(
...(mode === 'memory'
? {
allowedOrigins:
remote.allowedOrigins ??
initialState.remote.allowedOrigins,
getAllowedOrigins().join(', ')
}
: {}),
...(remote.dynamicRemoteAccessType ===

View File

@@ -0,0 +1,20 @@
import { getAllowedOrigins } from '@app/common/allowed-origins';
import { ensurePermission } from '@app/core/utils/permissions/ensure-permission';
import { type MutationResolvers } from '@app/graphql/generated/api/types';
import { store } from '@app/store/index';
import { updateAllowedOrigins } from '@app/store/modules/config';
export const setAdditionalAllowedOrigins: MutationResolvers['setAdditionalAllowedOrigins'] =
async (_, args, context) => {
ensurePermission(context.user, {
resource: 'connect',
possession: 'own',
action: 'update',
});
await store.dispatch(
updateAllowedOrigins(args.input.origins)
);
return getAllowedOrigins();
};

View File

@@ -2,9 +2,11 @@ import { type Resolvers } from '@app/graphql/generated/api/types';
import { sendNotification } from './notifications';
import { connectSignIn } from '@app/graphql/resolvers/mutation/connect/connect-sign-in';
import { connectSignOut } from '@app/graphql/resolvers/mutation/connect/connect-sign-out';
import { setAdditionalAllowedOrigins } from '@app/graphql/resolvers/mutation/connect/set-additional-allowed-origins';
export const Mutation: Resolvers['Mutation'] = {
sendNotification,
connectSignIn,
connectSignOut
connectSignOut,
setAdditionalAllowedOrigins,
};

View File

@@ -6,7 +6,6 @@ import {
} from '@reduxjs/toolkit';
import { type AppDispatch, type RootState } from '@app/store';
import { enableUpnpListener } from '@app/store/listeners/upnp-listener';
import { enableAllowedOriginListener } from '@app/store/listeners/allowed-origin-listener';
import { enableConfigFileListener } from '@app/store/listeners/config-listener';
import { enableVersionListener } from '@app/store/listeners/version-listener';
import { enableMothershipJobsListener } from '@app/store/listeners/mothership-subscription-listener';
@@ -37,7 +36,6 @@ export const startMiddlewareListeners = () => {
enableConfigFileListener('flash')();
enableConfigFileListener('memory')();
enableUpnpListener();
enableAllowedOriginListener();
enableVersionListener();
enableMothershipJobsListener();
enableDynamicRemoteAccessListener();

View File

@@ -239,7 +239,7 @@ export const config = createSlice({
return merge(state, { remote: action.payload });
},
updateAllowedOrigins(state, action: PayloadAction<string[]>) {
state.remote.allowedOrigins = action.payload.join(', ');
state.api.extraOrigins = action.payload.join(', ');
},
setUpnpState(
state,

View File

@@ -4,7 +4,7 @@ import { type DynamicRemoteAccessType } from '@app/remoteAccess/types';
interface MyServersConfig extends Record<string, unknown> {
api: {
version: string;
extraOrigins?: string;
extraOrigins: string;
};
local: {
'2Fa'?: string;