summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimeon Simeonov2018-03-19 13:24:40 +0100
committerSimeon Simeonov2018-03-19 13:24:40 +0100
commit6edeb462320240d981ec307798c7841e50197758 (patch)
tree6fe190dce68f9c959a32b45fe43f28248330c36e
parentf9ccb2ec719299368e454fcfcbc147dd353658aa (diff)
Make it possible to set mp. encrypted password from the prefs_account_dialog
-rw-r--r--src/prefs_account_dialog.c4
-rw-r--r--src/prefs_ui.c39
-rw-r--r--src/prefs_ui.h1
3 files changed, 42 insertions, 2 deletions
diff --git a/src/prefs_account_dialog.c b/src/prefs_account_dialog.c
index e9cba13..e215b8e 100644
--- a/src/prefs_account_dialog.c
+++ b/src/prefs_account_dialog.c
@@ -267,7 +267,7 @@ static PrefsUIData ui_data[] = {
267 {"user_id", &basic.uid_entry, 267 {"user_id", &basic.uid_entry,
268 prefs_set_data_from_entry, prefs_set_entry}, 268 prefs_set_data_from_entry, prefs_set_entry},
269 {"password", &basic.pass_entry, 269 {"password", &basic.pass_entry,
270 prefs_set_data_from_entry, prefs_set_entry}, 270 prefs_set_data_from_epass_entry, prefs_set_entry},
271 271
272 /* Receive */ 272 /* Receive */
273 {"use_apop_auth", &receive.use_apop_chkbtn, 273 {"use_apop_auth", &receive.use_apop_chkbtn,
@@ -313,7 +313,7 @@ static PrefsUIData ui_data[] = {
313 {"smtp_user_id", &p_send.smtp_uid_entry, 313 {"smtp_user_id", &p_send.smtp_uid_entry,
314 prefs_set_data_from_entry, prefs_set_entry}, 314 prefs_set_data_from_entry, prefs_set_entry},
315 {"smtp_password", &p_send.smtp_pass_entry, 315 {"smtp_password", &p_send.smtp_pass_entry,
316 prefs_set_data_from_entry, prefs_set_entry}, 316 prefs_set_data_from_epass_entry, prefs_set_entry},
317 317
318 {"pop_before_smtp", &p_send.pop_bfr_smtp_chkbtn, 318 {"pop_before_smtp", &p_send.pop_bfr_smtp_chkbtn,
319 prefs_set_data_from_toggle, prefs_set_toggle}, 319 prefs_set_data_from_toggle, prefs_set_toggle},
diff --git a/src/prefs_ui.c b/src/prefs_ui.c
index a3a8f74..5539f4a 100644
--- a/src/prefs_ui.c
+++ b/src/prefs_ui.c
@@ -36,6 +36,7 @@
36#include "codeconv.h" 36#include "codeconv.h"
37#include "utils.h" 37#include "utils.h"
38#include "gtkutils.h" 38#include "gtkutils.h"
39#include "masterpassword.h"
39 40
40typedef enum 41typedef enum
41{ 42{
@@ -268,6 +269,44 @@ void prefs_set_data_from_entry(PrefParam *pparam)
268 } 269 }
269} 270}
270 271
272void prefs_set_data_from_epass_entry(PrefParam *pparam)
273{
274#if USE_SSL
275 PrefsUIData *ui_data;
276 gchar **str;
277 const gchar *entry_str;
278
279 if (!master_password_active()) {
280 prefs_set_data_from_entry(pparam);
281 return;
282 }
283
284 ui_data = (PrefsUIData *)pparam->ui_data;
285 g_return_if_fail(ui_data != NULL);
286 g_return_if_fail(*ui_data->widget != NULL);
287
288 entry_str = gtk_entry_get_text(GTK_ENTRY(*ui_data->widget));
289
290 switch (pparam->type) {
291 case P_STRING:
292 str = (gchar **)pparam->data;
293 g_free(*str);
294 if ((entry_str != NULL) && (!mpes_string_prefix(entry_str))) {
295 debug_print("Encrypting GTK password entry\n");
296 *str = encrypt_with_master_password(entry_str);
297 } else {
298 *str = entry_str[0] ? g_strdup(entry_str) : NULL;
299 }
300 break;
301 default:
302 g_warning("Invalid PrefType for GtkEntry widget: %d\n",
303 pparam->type);
304 }
305#else
306 prefs_set_data_from_entry(pparam);
307#endif
308}
309
271void prefs_set_entry(PrefParam *pparam) 310void prefs_set_entry(PrefParam *pparam)
272{ 311{
273 PrefsUIData *ui_data; 312 PrefsUIData *ui_data;
diff --git a/src/prefs_ui.h b/src/prefs_ui.h
index cfdf353..f7bd903 100644
--- a/src/prefs_ui.h
+++ b/src/prefs_ui.h
@@ -164,6 +164,7 @@ void prefs_set_data_from_dialog (PrefParam *param);
164void prefs_set_dialog_to_default(PrefParam *param); 164void prefs_set_dialog_to_default(PrefParam *param);
165 165
166void prefs_set_data_from_entry (PrefParam *pparam); 166void prefs_set_data_from_entry (PrefParam *pparam);
167void prefs_set_data_from_epass_entry(PrefParam *pparam);
167void prefs_set_entry (PrefParam *pparam); 168void prefs_set_entry (PrefParam *pparam);
168void prefs_set_data_from_text (PrefParam *pparam); 169void prefs_set_data_from_text (PrefParam *pparam);
169void prefs_set_text (PrefParam *pparam); 170void prefs_set_text (PrefParam *pparam);