Bjørn Lie 2023-04-06 15:33:12 +00:00 committed by Git OBS Bridge
parent 0e010f1c26
commit 6c1e588d4a
3 changed files with 32 additions and 106 deletions

View File

@ -1,98 +1,25 @@
From 342795440012a216d4abb9cfb04d2c3bd0fe8f4d Mon Sep 17 00:00:00 2001 diff --git a/js/ui/status/network.js b/js/ui/status/network.js
From: Giovanni Campagna <gcampagna@src.gnome.org> index e3b9a5d..3296e1d 100644
Date: Thu, 31 Mar 2011 15:56:13 +0200 --- a/js/ui/status/network.js
Subject: [PATCH] NetworkMenu: create private connections if the user is not authorized +++ b/js/ui/status/network.js
@@ -940,6 +940,11 @@ const WirelessNetwork = GObject.registerClass({
Check polkit setting at startup and add, if needed, the "permissions" this._getDeviceDBusPath(), ap.get_path());
setting to the connections we create, so that polkit authentication is } else {
never needed. The connection is thus only available to other users conn = new NM.SimpleConnection();
if the system administrator decides so. + if (this._IsPrivateConnections()) {
+ let connectionSetting = new NM.SettingConnection();
https://bugzilla.gnome.org/show_bug.cgi?id=646187 + connectionSetting.add_permission('user', GLib.get_user_name(), null);
--- + conn.add_setting(connectionSetting);
Index: gnome-shell-42.rc/js/ui/status/network.js + }
=================================================================== this._device.client.add_and_activate_connection_async(
--- gnome-shell-42.rc.orig/js/ui/status/network.js conn, this._device, ap.get_path(), null, null);
+++ gnome-shell-42.rc/js/ui/status/network.js
@@ -350,6 +350,11 @@ var NMConnectionDevice = class NMConnect
_autoConnect() {
let connection = new NM.SimpleConnection();
+ if (this._privateConnections) {
+ let connectionSetting = new NM.SettingConnection();
+ connectionSetting.add_permission('user', GLib.get_user_name(), null);
+ connection.add_setting(connectionSetting);
+ }
this._client.add_and_activate_connection_async(connection, this._device, null, null, null);
}
@@ -478,10 +483,11 @@ var NMConnectionDevice = class NMConnect
};
var NMDeviceWired = class extends NMConnectionDevice {
- constructor(client, device) {
+ constructor(client, device, privateConnections) {
super(client, device);
this.item.menu.addSettingsAction(_("Wired Settings"), 'gnome-network-panel.desktop');
+ this._privateConnections = privateConnections;
}
get category() {
@@ -738,11 +744,12 @@ var NMWirelessDialogItem = GObject.regis
var NMWirelessDialog = GObject.registerClass(
class NMWirelessDialog extends ModalDialog.ModalDialog {
- _init(client, device) {
+ _init(client, device, privateConnections) {
super._init({ styleClass: 'nm-dialog' });
this._client = client;
this._device = device;
+ this._privateConnections = privateConnections;
this._client.connectObject('notify::wireless-enabled',
this._syncView.bind(this), this);
@@ -978,6 +985,11 @@ class NMWirelessDialog extends ModalDial
this._getDeviceDBusPath(), accessPoints[0].get_path());
} else {
let connection = new NM.SimpleConnection();
+ if (this._privateConnections) {
+ let connectionSetting = new NM.SettingConnection();
+ connectionSetting.add_permission('user', GLib.get_user_name(), null);
+ connection.add_setting(connectionSetting);
+ }
this._client.add_and_activate_connection_async(connection, this._device, accessPoints[0].get_path(), null, null);
}
} }
@@ -1243,9 +1255,10 @@ class NMWirelessDialog extends ModalDial @@ -949,6 +954,22 @@ const WirelessNetwork = GObject.registerClass({
}); this.emit('destroy');
var NMDeviceWireless = class {
- constructor(client, device) {
+ constructor(client, device, privateConnections) {
this._client = client;
this._device = device;
+ this._privateConnections = privateConnections;
this._description = '';
@@ -1313,7 +1326,7 @@ var NMDeviceWireless = class {
} }
_showDialog() { + _IsPrivateConnections() {
- this._dialog = new NMWirelessDialog(this._client, this._device); + let privateConnections = true;
+ this._dialog = new NMWirelessDialog(this._client, this._device, this._privateConnections);
this._dialog.connect('closed', this._dialogClosed.bind(this));
this._dialog.open();
}
@@ -1683,6 +1696,20 @@ class Indicator extends PanelMenu.System
async _getClient() {
this._client = await NM.Client.new_async(null);
+
+ // Check if newly created connections should be private or not
+ this._privateConnections = true;
+ let authority = Polkit.Authority.get_sync(null); + let authority = Polkit.Authority.get_sync(null);
+ let credential = new Gio.Credentials(); + let credential = new Gio.Credentials();
+ let subject = new Polkit.UnixProcess({ pid: credential.get_unix_pid(), uid: credential.get_unix_user() }); + let subject = new Polkit.UnixProcess({ pid: credential.get_unix_pid(), uid: credential.get_unix_user() });
@ -102,17 +29,11 @@ Index: gnome-shell-42.rc/js/ui/status/network.js
+ Polkit.CheckAuthorizationFlags.NONE, + Polkit.CheckAuthorizationFlags.NONE,
+ null /* cancellable */); + null /* cancellable */);
+ if (authResult) + if (authResult)
+ this._privateConnections = !authResult.get_is_authorized(); + privateConnections = !authResult.get_is_authorized();
+ +
this._activeConnections = []; + return privateConnections;
this._connections = []; + }
this._connectivityQueue = []; +
@@ -1812,7 +1839,7 @@ class Indicator extends PanelMenu.System _getDeviceDBusPath() {
// nm_object_get_path() is shadowed by nm_device_get_path()
let wrapperClass = this._dtypes[device.get_device_type()]; return NM.Object.prototype.get_path.call(this._device);
if (wrapperClass) {
- let wrapper = new wrapperClass(this._client, device);
+ let wrapper = new wrapperClass(this._client, device, this._privateConnections);
device._delegate = wrapper;
this._addDeviceWrapper(wrapper);

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Thu Apr 6 01:13:10 UTC 2023 - Xiaoguang Wang <xiaoguang.wang@suse.com>
- Update gnome-shell-private-connection.patch: (bsc#1209373)
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Mar 30 11:21:55 UTC 2023 - bjorn.lie@gmail.com Thu Mar 30 11:21:55 UTC 2023 - bjorn.lie@gmail.com

View File

@ -182,7 +182,7 @@ This package contains an optional extensions app for managing GNOME Shell extens
%prep %prep
%setup -q %setup -q
#patch1 -p1 %patch1 -p1
%patch7 -p1 %patch7 -p1
#patch8 -p1 #patch8 -p1