diff options
author | Vivek Dasmohapatra <vivek@collabora.co.uk> | 2011-03-22 20:28:26 +0000 |
---|---|---|
committer | Vivek Dasmohapatra <vivek@collabora.co.uk> | 2011-04-05 14:19:10 +0100 |
commit | 1e23d9051b6f001e2ae77557783248ae1d7f5c33 (patch) | |
tree | 646d69a5fbb1e446ee4133308860dec9cde73efc | |
parent | d1e2989bf0eae978f2eb20c1791d858d0720c059 (diff) |
The service properties shouldn't get deleted when the account is updated
-rw-r--r-- | src/mcd-account-manager-sso.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mcd-account-manager-sso.c b/src/mcd-account-manager-sso.c index d5985260..5752985e 100644 --- a/src/mcd-account-manager-sso.c +++ b/src/mcd-account-manager-sso.c @@ -434,6 +434,7 @@ static void _sso_updated (AgAccount *account, const gchar *deleted_key; guint i; gboolean params_updated = FALSE; + const gchar *immutables[] = { MC_SERVICE_KEY, SERVICES_KEY, NULL }; /* account has no name yet: might be time to create it */ if (name == NULL) @@ -496,6 +497,15 @@ static void _sso_updated (AgAccount *account, } } + /* special case values always exist and therefore cannot be deleted */ + for (i = 0; immutables[i] != NULL; i++) + { + Setting *immutable = setting_data (immutables[i], SETTING_AG); + + g_hash_table_remove (unseen, immutable->ag_name); + clear_setting_data (immutable); + } + /* signal (and update) deleted settings: */ g_hash_table_iter_init (&deleted_iter, unseen); |