Skip to content
Snippets Groups Projects
Unverified Commit 374e1a45 authored by gabriellsh's avatar gabriellsh Committed by GitHub
Browse files

regression: `Cloud_Workspace_AirGapped_Restrictions_Remaining_Days` visible in...

regression: `Cloud_Workspace_AirGapped_Restrictions_Remaining_Days` visible in admin settings page (#33798)
parent 1fdf91e8
No related merge requests found
...@@ -14,13 +14,15 @@ import type { EditableSetting, EditableSettingsContextValue } from '../EditableS ...@@ -14,13 +14,15 @@ import type { EditableSetting, EditableSettingsContextValue } from '../EditableS
import { EditableSettingsContext } from '../EditableSettingsContext'; import { EditableSettingsContext } from '../EditableSettingsContext';
const defaultQuery: SettingsContextQuery = {}; const defaultQuery: SettingsContextQuery = {};
const defaultOmit: Array<ISetting['_id']> = [];
type EditableSettingsProviderProps = { type EditableSettingsProviderProps = {
children?: ReactNode; children?: ReactNode;
query?: SettingsContextQuery; query?: SettingsContextQuery;
omit?: Array<ISetting['_id']>;
}; };
const EditableSettingsProvider = ({ children, query = defaultQuery }: EditableSettingsProviderProps) => { const EditableSettingsProvider = ({ children, query = defaultQuery, omit = defaultOmit }: EditableSettingsProviderProps) => {
const settingsCollectionRef = useRef<Mongo.Collection<EditableSetting>>(null) as MutableRefObject<Mongo.Collection<EditableSetting>>; const settingsCollectionRef = useRef<Mongo.Collection<EditableSetting>>(null) as MutableRefObject<Mongo.Collection<EditableSetting>>;
const persistedSettings = useSettings(query); const persistedSettings = useSettings(query);
...@@ -39,7 +41,13 @@ const EditableSettingsProvider = ({ children, query = defaultQuery }: EditableSe ...@@ -39,7 +41,13 @@ const EditableSettingsProvider = ({ children, query = defaultQuery }: EditableSe
for (const { _id, ...fields } of persistedSettings) { for (const { _id, ...fields } of persistedSettings) {
settingsCollection.upsert(_id, { $set: { ...fields }, $unset: { changed: true } }); settingsCollection.upsert(_id, { $set: { ...fields }, $unset: { changed: true } });
} }
}, [getSettingsCollection, persistedSettings]); // TODO: Remove option to omit settings from admin pages manually
// This is a very wacky workaround due to lack of support to omit settings from the
// admin settings page while keeping them public.
if (omit.length > 0) {
settingsCollection.remove({ _id: { $in: omit } });
}
}, [getSettingsCollection, persistedSettings, omit]);
const queryEditableSetting = useMemo(() => { const queryEditableSetting = useMemo(() => {
const validateSettingQueries = ( const validateSettingQueries = (
......
...@@ -7,6 +7,8 @@ import EditableSettingsProvider from './EditableSettingsProvider'; ...@@ -7,6 +7,8 @@ import EditableSettingsProvider from './EditableSettingsProvider';
import SettingsGroupSelector from './SettingsGroupSelector'; import SettingsGroupSelector from './SettingsGroupSelector';
import SettingsPage from './SettingsPage'; import SettingsPage from './SettingsPage';
const omittedSettings = ['Cloud_Workspace_AirGapped_Restrictions_Remaining_Days'];
export const SettingsRoute = (): ReactElement => { export const SettingsRoute = (): ReactElement => {
const hasPermission = useIsPrivilegedSettingsContext(); const hasPermission = useIsPrivilegedSettingsContext();
const groupId = useRouteParameter('group'); const groupId = useRouteParameter('group');
...@@ -21,7 +23,7 @@ export const SettingsRoute = (): ReactElement => { ...@@ -21,7 +23,7 @@ export const SettingsRoute = (): ReactElement => {
} }
return ( return (
<EditableSettingsProvider> <EditableSettingsProvider omit={omittedSettings}>
<SettingsGroupSelector groupId={groupId} onClickBack={() => router.navigate('/admin/settings')} /> <SettingsGroupSelector groupId={groupId} onClickBack={() => router.navigate('/admin/settings')} />
</EditableSettingsProvider> </EditableSettingsProvider>
); );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment