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
|
Index: gnome-shell-3.4.2/js/ui/status/network.js
===================================================================
--- gnome-shell-3.4.2.orig/js/ui/status/network.js 2013-01-15 19:32:37.397724811 +0100
+++ gnome-shell-3.4.2/js/ui/status/network.js 2013-01-16 11:38:36.000000000 +0100
@@ -97,6 +97,11 @@ function ssidToLabel(ssid) {
return label;
}
+function default_to_private_connections(client) {
+ let perms = client.get_permission_result (NMClient.ClientPermission.SETTINGS_MODIFY_SYSTEM);
+ return (perms != NMClient.ClientPermissionResult.YES);
+}
+
const NMNetworkMenuItem = new Lang.Class({
Name: 'NMNetworkMenuItem',
Extends: PopupMenu.PopupBaseMenuItem,
@@ -864,12 +869,14 @@ const NMDeviceBluetooth = new Lang.Class
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;
},
@@ -950,6 +957,8 @@ const NMDeviceWireless = new Lang.Class(
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;
@@ -1455,12 +1464,27 @@ const NMDeviceWireless = new Lang.Class(
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;
},
|