172
172
return "*remote_directory*" + remote_server.url;
175
private string username_from_remote_server_fields(RemoteServer remote_server)
178
foreach (var f in remote_server.fields)
180
if (f.type == "username" && f.default_value != null)
182
username = f.default_value.get_string ();
175
189
private string user_list_name_for_remote_login_server (RemoteServer remote_server)
177
return "*remote_login*" + remote_server.url;
191
var username = username_from_remote_server_fields (remote_server);
192
return "*remote_login*" + remote_server.url + "*" + username;
180
195
private string url_from_remote_loding_server_list_name (string remote_server_list_name)
182
197
return remote_server_list_name.split ("*")[2];
200
private string username_from_remote_loding_server_list_name (string remote_server_list_name)
202
return remote_server_list_name.split ("*")[3];
185
205
private void set_remote_directory_servers (RemoteServer[] server_list)
590
615
current_remote_fields = new HashTable<string, Gtk.Widget> (str_hash, str_equal);
591
616
var url = url_from_remote_loding_server_list_name (selected_entry.id);
617
var username = username_from_remote_loding_server_list_name (selected_entry.id);
592
619
foreach (var remote_server in server_list)
594
if (remote_server.url == url)
621
var remote_username = username_from_remote_server_fields (remote_server);
622
if (remote_server.url == url && (username == null || username == remote_username))
596
624
if (selected_entry.id.has_prefix ("*remote_login"))
1236
1264
server_list[3] = remote_server4;
1267
private void test_fill_remote_login_servers_duplicate_entries (out RemoteServer[] server_list)
1269
/* Create two remote servers with same url but different username and domain. */
1272
RemoteServer remote_server2 = RemoteServer ();
1273
remote_server2.type = "rdp";
1274
remote_server2.name = "RDP server with default username, and editable domain";
1275
remote_server2.url = "http://rdpdefaultusername.com";
1276
remote_server2.last_used_server = false;
1277
remote_server2.fields = {};
1278
RemoteServerField field21 = RemoteServerField ();
1279
field21.type = "username";
1280
field21.default_value = new Variant.string ("alowl1");
1281
RemoteServerField field22 = RemoteServerField ();
1282
field22.type = "password";
1283
field22.default_value = new Variant.string ("duplicate1");
1284
RemoteServerField field23 = RemoteServerField ();
1285
field23.type = "domain";
1286
field23.default_value = new Variant.string ("SCANNERS");
1287
remote_server2.fields = {field21, field22, field23};
1289
RemoteServer remote_server5 = RemoteServer ();
1290
remote_server5.type = "rdp";
1291
remote_server5.name = "RDP server with default username, and editable domain";
1292
remote_server5.url = "http://rdpdefaultusername.com";
1293
remote_server5.last_used_server = false;
1294
remote_server5.fields = {};
1295
RemoteServerField field51 = RemoteServerField ();
1296
field51.type = "username";
1297
field51.default_value = new Variant.string ("alowl2");
1298
RemoteServerField field52 = RemoteServerField ();
1299
field52.type = "password";
1300
field52.default_value = new Variant.string ("duplicate2");
1301
RemoteServerField field53 = RemoteServerField ();
1302
field53.type = "domain";
1303
field53.default_value = new Variant.string ("PRINTERS");
1304
remote_server5.fields = {field51, field52, field53};
1306
server_list.resize (2);
1307
server_list[0] = remote_server2;
1308
server_list[1] = remote_server5;
1239
1311
private bool test_key_press_cb (Gdk.EventKey event)
1241
1313
if ((event.state & Gdk.CONTROL_MASK) == 0)