Package: cinnamon / 3.2.7-4

network-user-connections.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js
===================================================================
--- cinnamon.orig/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js	2016-11-19 13:15:06.034279390 +0100
+++ cinnamon/files/usr/share/cinnamon/applets/network@cinnamon.org/applet.js	2016-11-19 13:15:06.030279281 +0100
@@ -100,6 +100,11 @@
     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,
 
@@ -926,12 +931,14 @@
         let connection = new NetworkManager.Connection;
         connection._uuid = NetworkManager.utils_uuid_generate();
         connection.add_setting(new NetworkManager.SettingBluetooth);
-        connection.add_setting(new NetworkManager.SettingConnection({
+        let setting_conn = new NetworkManager.SettingConnection({
             uuid: connection._uuid,
             id: this._autoConnectionName,
             type: NetworkManager.SETTING_BLUETOOTH_SETTING_NAME,
             autoconnect: false
-        }));
+        });
+        setting_conn.add_permission('user', GLib.get_user_name(), null);
+        connection.add_setting(setting_conn);
         return connection;
     },
 
@@ -1012,6 +1019,8 @@
         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;
@@ -1555,12 +1564,27 @@
 
         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;
     },