X-Git-Url: http://www.project-moonshot.org/gitweb/?p=moonshot-ui.git;a=blobdiff_plain;f=src%2Fmoonshot-identity-manager-app.vala;h=a9a4c3364207835d5e740c081591b27d300aa645;hp=a5f04c19530847a82c3979dce4f5db48eb4b0301;hb=17d69131138577849d9cb170fd3ddb0da3ccb8b3;hpb=a5a7ae76ecc654e74d22120bf6147507c9dc4a92 diff --git a/src/moonshot-identity-manager-app.vala b/src/moonshot-identity-manager-app.vala index a5f04c1..a9a4c33 100644 --- a/src/moonshot-identity-manager-app.vala +++ b/src/moonshot-identity-manager-app.vala @@ -40,8 +40,9 @@ public class IdentityManagerApp { } public IdentityManagerApp (bool headless, bool use_flat_file_store) { + use_flat_file_store |= UserForcesFlatFileStore(); #if GNOME_KEYRING - bool keyring_available = GnomeKeyring.is_available(); + bool keyring_available = (!use_flat_file_store) && GnomeKeyring.is_available(); #else bool keyring_available = false; #endif @@ -95,16 +96,14 @@ public class IdentityManagerApp { bool has_nai = request.nai != null && request.nai != ""; bool has_srv = request.service != null && request.service != ""; bool confirm = false; - IdCard nai_provided = null; foreach (IdCard id in model.get_card_list()) { - /* If NAI matches we add id card to the candidate list */ + /* If NAI matches, use this id card */ if (has_nai && request.nai == id.nai) { - nai_provided = id; - request.candidates.append (id); - continue; + identity = id; + break; } /* If any service matches we add id card to the candidate list */ @@ -122,7 +121,7 @@ public class IdentityManagerApp { } /* If more than one candidate we dissasociate service from all ids */ - if (has_srv && request.candidates.length() > 1) + if ((identity == null) && has_srv && request.candidates.length() > 1) { foreach (IdCard id in request.candidates) { @@ -160,10 +159,8 @@ public class IdentityManagerApp { } } -// model.store_id_cards (); - /* If there are no candidates we use the service matching rules */ - if (request.candidates.length () == 0) + if ((identity==null) && (request.candidates.length () == 0)) { foreach (IdCard id in model.get_card_list()) { @@ -180,38 +177,25 @@ public class IdentityManagerApp { } } - if (request.candidates.length () > 1) - { - if (has_nai && nai_provided != null) - { - identity = nai_provided; - confirm = false; - } - else - confirm = true; - } - if (identity == null) - identity = request.candidates.nth_data (0); - if ((identity != null) && - ((identity.password == null) || (identity.password == ""))) + if ((identity == null) && has_nai) { + // create a temp identity + string[] components = request.nai.split("@", 2); + identity = new IdCard(); + identity.display_name = request.nai; + identity.username = components[0]; + if (components.length > 1) + identity.issuer = components[1]; identity.password = request.password; + identity.temporary = true; + } if (identity == null) { - if (has_nai) { - // create a temp identity - string[] components = request.nai.split("@", 2); - identity = new IdCard(); - identity.display_name = request.nai; - identity.username = components[0]; - if (components.length > 1) - identity.issuer = components[1]; - identity.password = request.password; - } else { + if (request.candidates.length () != 1) { confirm = true; + } else { + identity = request.candidates.nth_data (0); } } - /* TODO: If candidate list empty return fail */ - if (confirm && (view != null)) { if (!explicitly_launched)