Skip to content

Commit

Permalink
networkmanager: use usePolkitPermissions hook
Browse files Browse the repository at this point in the history
  • Loading branch information
chriswiggins committed Apr 10, 2024
1 parent f20729b commit dbab17c
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions pkg/networkmanager/networkmanager.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ import { UsageMonitor } from './helpers.js';

import * as service from 'service.js';
import { init as initDialogs, NetworkManagerModel } from './interfaces.js';
import { superuser } from 'superuser';
import { PlotState } from 'plot';

import { useObject, useEvent, usePageLocation } from "hooks";
import { WithDialogs } from "dialogs.jsx";
import { usePolkitPermissions } from '../lib/hooks.js';

const _ = cockpit.gettext;

Expand All @@ -55,7 +55,19 @@ const App = () => {

const { path } = usePageLocation();

useEvent(superuser, "changed");
// This uses polkit but falls back to superuser.allowed
const polkitPermissions = usePolkitPermissions([
'org.freedesktop.NetworkManager.reload',
'org.freedesktop.NetworkManager.checkpoint-rollback',
'org.freedesktop.NetworkManager.network-control',
'org.freedesktop.NetworkManager.settings.modify.global-dns',
'org.freedesktop.NetworkManager.settings.modify.hostname',
'org.freedesktop.NetworkManager.settings.modify.own',
'org.freedesktop.NetworkManager.settings.modify.system'
]);

// For now we require all of the permissions to be true
const privileged = Object.values(polkitPermissions).every(Boolean);

const usage_monitor = useObject(() => new UsageMonitor(), null, []);
const plot_state_main = useObject(() => new PlotState(), null, []);
Expand Down Expand Up @@ -117,7 +129,7 @@ const App = () => {
return (
<ModelContext.Provider value={model}>
<WithDialogs key="1">
<NetworkPage privileged={superuser.allowed}
<NetworkPage privileged={privileged}
operationInProgress={model.operationInProgress}
usage_monitor={usage_monitor}
plot_state={plot_state_main}
Expand All @@ -132,7 +144,7 @@ const App = () => {
return (
<ModelContext.Provider value={model}>
<WithDialogs key="2">
<NetworkInterfacePage privileged={superuser.allowed}
<NetworkInterfacePage privileged={privileged}
operationInProgress={model.operationInProgress}
usage_monitor={usage_monitor}
plot_state={plot_state_iface}
Expand Down

0 comments on commit dbab17c

Please sign in to comment.