From: Debian Cinnamon Team <pkg-cinnamon-team@lists.alioth.debian.org>
Date: Sun, 13 Mar 2016 19:07:24 +0100
Subject: network-user-connections
---
.../applets/network@cinnamon.org/applet.js | 32 +++++++++++++++++++---
1 file changed, 28 insertions(+), 4 deletions(-)
Index: Cinnamon-3.6.6/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js
===================================================================
--- Cinnamon-3.6.6.orig/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js
+++ Cinnamon-3.6.6/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js
@@ -86,6 +86,11 @@ function NMNetworkMenuItem() {
this._init.apply(this, arguments);
}
+function default_to_private_connections(client) {
+ let perms = client.get_permission_result (NMClient.ClientPermission.SETTINGS_MODIFY_SYSTEM);
+ return (perms != NMClient.ClientPermissionResult.YES);
+}
+
NMNetworkMenuItem.prototype = {
__proto__: PopupMenu.PopupBaseMenuItem.prototype,
@@ -743,12 +748,14 @@ NMDeviceWired.prototype = {
let connection = new NetworkManager.Connection();
connection._uuid = NetworkManager.utils_uuid_generate();
connection.add_setting(new NetworkManager.SettingWired());
- connection.add_setting(new NetworkManager.SettingConnection({
+ let setting_conn = new NetworkManager.SettingConnection({
uuid: connection._uuid,
id: this._autoConnectionName,
type: NetworkManager.SETTING_WIRED_SETTING_NAME,
autoconnect: true
- }));
+ });
+ setting_conn.add_permission('user', GLib.get_user_name(), null);
+ connection.add_setting(setting_conn);
return connection;
}
};
@@ -998,6 +1005,8 @@ NMDeviceWireless.prototype = {
this._overflowItem = null;
this._networks = [ ];
+ this._client = client;
+
// breaking the layers with this, but cannot call
// this.connectionValid until I have a device
this.device = device;
@@ -1537,12 +1546,27 @@ NMDeviceWireless.prototype = {
let connection = new NetworkManager.Connection();
connection.add_setting(new NetworkManager.SettingWireless());
- connection.add_setting(new NetworkManager.SettingConnection({
+ let setting_conn = new NetworkManager.SettingConnection({
id: name,
autoconnect: true, // NetworkManager will know to ignore this if appropriate
uuid: NetworkManager.utils_uuid_generate(),
type: NetworkManager.SETTING_WIRELESS_SETTING_NAME
- }));
+ });
+ if (default_to_private_connections(this._client)) {
+ setting_conn.add_permission('user', GLib.get_user_name(), null);
+ if (apObj.security == NMAccessPointSecurity.WPA2_PSK ||
+ apObj.security == NMAccessPointSecurity.WPA_PSK) {
+ connection.add_setting(new NetworkManager.SettingWirelessSecurity({
+ psk_flags: NetworkManager.SettingSecretFlags.AGENT_OWNED
+ }));
+ }
+ if (apObj.security == NMAccessPointSecurity.WEP) {
+ connection.add_setting(new NetworkManager.SettingWirelessSecurity({
+ wep_key_flags: NetworkManager.SettingSecretFlags.AGENT_OWNED
+ }));
+ }
+ }
+ connection.add_setting(setting_conn);
return connection;
},