[MM-64355] Disable server management in the Settings Modal when disabled via group policy (#3430)

* [MM-64355] Disable server management in the Settings Modal when disabled via group policy

* Fix to disallow deleting predefined servers

* Fix lint
This commit is contained in:
Devin Binnie
2025-05-22 08:14:48 -04:00
committed by GitHub
parent 69ef00c177
commit 2879ada39a

View File

@@ -23,6 +23,7 @@ export default function ServerSetting() {
const [servers, setServers] = useState<UniqueServerWithPermissions[]>([]); const [servers, setServers] = useState<UniqueServerWithPermissions[]>([]);
const [currentServer, setCurrentServer] = useState<UniqueServerWithPermissions>(); const [currentServer, setCurrentServer] = useState<UniqueServerWithPermissions>();
const [modal, setModal] = useState<Modal>(); const [modal, setModal] = useState<Modal>();
const [enableServerManagement, setEnableServerManagement] = useState<boolean>(false);
const reloadServers = useCallback(() => { const reloadServers = useCallback(() => {
window.desktop.getUniqueServersWithPermissions().then(setServers); window.desktop.getUniqueServersWithPermissions().then(setServers);
@@ -32,6 +33,10 @@ export default function ServerSetting() {
const off = window.desktop.onReloadConfiguration(reloadServers); const off = window.desktop.onReloadConfiguration(reloadServers);
reloadServers(); reloadServers();
window.desktop.getLocalConfiguration().then((config) => {
setEnableServerManagement(config.enableServerManagement);
});
return () => off(); return () => off();
}, []); }, []);
@@ -116,16 +121,18 @@ export default function ServerSetting() {
defaultMessage='Servers' defaultMessage='Servers'
/> />
</h3> </h3>
<button {enableServerManagement &&
onClick={showAddServerModal} <button
className='ServerSetting__addServer btn btn-sm btn-tertiary' onClick={showAddServerModal}
> className='ServerSetting__addServer btn btn-sm btn-tertiary'
<i className='icon icon-plus'/> >
<FormattedMessage <i className='icon icon-plus'/>
id='renderer.components.settingsPage.serverSetting.addAServer' <FormattedMessage
defaultMessage='Add a server' id='renderer.components.settingsPage.serverSetting.addAServer'
/> defaultMessage='Add a server'
</button> />
</button>
}
</div> </div>
{servers.length === 0 && ( {servers.length === 0 && (
<div className='ServerSetting__noServers'> <div className='ServerSetting__noServers'>
@@ -136,12 +143,12 @@ export default function ServerSetting() {
defaultMessage='No servers added' defaultMessage='No servers added'
/> />
</div> </div>
<div className='ServerSetting__noServersDescription'> {enableServerManagement && <div className='ServerSetting__noServersDescription'>
<FormattedMessage <FormattedMessage
id='renderer.components.settingsPage.serverSetting.noServers.description' id='renderer.components.settingsPage.serverSetting.noServers.description'
defaultMessage="Add a server to connect to your team's communication hub" defaultMessage="Add a server to connect to your team's communication hub"
/> />
</div> </div>}
</div> </div>
)} )}
<div className='ServerSetting__serverList'> <div className='ServerSetting__serverList'>
@@ -163,12 +170,14 @@ export default function ServerSetting() {
> >
<i className='icon icon-pencil-outline'/> <i className='icon icon-pencil-outline'/>
</button> </button>
<button {enableServerManagement && !server.server.isPredefined &&
onClick={showRemoveServerModal(server)} <button
className='ServerSetting__removeServer btn btn-icon btn-sm btn-tertiary btn-transparent btn-danger' onClick={showRemoveServerModal(server)}
> className='ServerSetting__removeServer btn btn-icon btn-sm btn-tertiary btn-transparent btn-danger'
<i className='icon icon-trash-can-outline'/> >
</button> <i className='icon icon-trash-can-outline'/>
</button>
}
</div> </div>
)))} )))}
</div> </div>