Password window sensitivity login redone

pull/108/head
Ivan Dmitrievich Yartsev 11 months ago
parent f883655aaa
commit 12c266c7ad

@ -1426,11 +1426,26 @@ char *yon_password_hash_get(password_window *window){
const char *encription = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->EncryptionCombo)); const char *encription = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->EncryptionCombo));
const char *hash = gtk_entry_get_text(GTK_ENTRY(window->PasswordHashEntry)); const char *hash = gtk_entry_get_text(GTK_ENTRY(window->PasswordHashEntry));
if (!yon_char_is_empty(hash)){ if (!yon_char_is_empty(hash)){
if (!yon_char_is_empty(window->old_password)&&strcmp(hash,window->old_password)&&strlen(hash)!=128&&strlen(hash)!=64){ // if (!yon_char_is_empty(window->old_password)&&strcmp(hash,window->old_password)){
switch(encription_active){
case 1:{
if (strlen(hash)!=128){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),INCORRECT_HASH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),INCORRECT_HASH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->PasswordHashEntry); yon_ubl_status_highlight_incorrect(window->PasswordHashEntry);
return NULL; return NULL;
} }
}
break;
case 2:{
if (strlen(hash)!=64){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),INCORRECT_HASH_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->PasswordHashEntry);
return NULL;
}
}
break;
}
// }
char *final = yon_char_unite(encription,"|",hash,NULL); char *final = yon_char_unite(encription,"|",hash,NULL);
return final; return final;
} else { } else {
@ -1601,6 +1616,29 @@ void on_file_chooser_open(GtkWidget *, GtkEntry *target){
gtk_widget_destroy(dialog); gtk_widget_destroy(dialog);
} }
void on_password_hash_sensitiveness(GtkWidget *,password_window *window){
const char *password = gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry));
const char *repeat_password = gtk_entry_get_text(GTK_ENTRY(window->RepeatPasswordEntry));
const char *hash = gtk_entry_get_text(GTK_ENTRY(window->PasswordHashEntry));
if (!yon_char_is_empty(password)||!yon_char_is_empty(repeat_password)){
gtk_widget_set_sensitive(window->HashBox,0);
gtk_widget_set_sensitive(window->PasswordBox,1);
} else if (yon_char_is_empty(password)&&yon_char_is_empty(repeat_password)&&
gtk_combo_box_get_active(GTK_COMBO_BOX(window->EncryptionCombo))>0&&
yon_char_is_empty(hash)){
gtk_widget_set_sensitive(window->HashBox,1);
gtk_widget_set_sensitive(window->PasswordBox,1);
gtk_widget_set_sensitive(window->NoEncriptionCheck,1);
} else if (!yon_char_is_empty(hash)) {
gtk_widget_set_sensitive(window->HashBox,1);
gtk_widget_set_sensitive(window->PasswordBox,0);
gtk_widget_set_sensitive(window->NoEncriptionCheck,0);
} else {
gtk_widget_set_sensitive(window->HashBox,0);
gtk_widget_set_sensitive(window->PasswordBox,1);
}
}
password_window *yon_password_window_new(){ password_window *yon_password_window_new(){
GtkBuilder *builder = gtk_builder_new_from_resource(glade_password_path); GtkBuilder *builder = gtk_builder_new_from_resource(glade_password_path);
password_window *window = malloc(sizeof(password_window)); password_window *window = malloc(sizeof(password_window));
@ -1614,10 +1652,16 @@ password_window *yon_password_window_new(){
window->PasswordHashEntry = yon_gtk_builder_get_widget(builder,"PasswordHashEntry"); window->PasswordHashEntry = yon_gtk_builder_get_widget(builder,"PasswordHashEntry");
window->UserCancelButton = yon_gtk_builder_get_widget(builder,"UserCancelButton"); window->UserCancelButton = yon_gtk_builder_get_widget(builder,"UserCancelButton");
window->AcceptButton = yon_gtk_builder_get_widget(builder,"UserOkButton"); window->AcceptButton = yon_gtk_builder_get_widget(builder,"UserOkButton");
window->PasswordBox = yon_gtk_builder_get_widget(builder,"PasswordBox");
window->HashBox = yon_gtk_builder_get_widget(builder,"HashBox");
window->old_password=NULL; window->old_password=NULL;
g_signal_connect(G_OBJECT(window->UserCancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->UserCancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->NoEncriptionCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->PasswordHashEntry); g_signal_connect(G_OBJECT(window->EncryptionCombo),"changed",G_CALLBACK(on_password_hash_sensitiveness),window);
g_signal_connect(G_OBJECT(window->NoEncriptionCheck),"toggled",G_CALLBACK(on_password_hash_sensitiveness),window);
g_signal_connect(G_OBJECT(window->PasswordHashEntry),"changed",G_CALLBACK(on_password_hash_sensitiveness),window);
g_signal_connect(G_OBJECT(window->PasswordEntry),"changed",G_CALLBACK(on_password_hash_sensitiveness),window);
g_signal_connect(G_OBJECT(window->RepeatPasswordEntry),"changed",G_CALLBACK(on_password_hash_sensitiveness),window);
gtk_widget_show(window->Window); gtk_widget_show(window->Window);
return window; return window;
} }

@ -279,6 +279,9 @@ typedef struct {
GtkWidget *UserCancelButton; GtkWidget *UserCancelButton;
GtkWidget *AcceptButton; GtkWidget *AcceptButton;
GtkWidget *PasswordBox;
GtkWidget *HashBox;
const char *old_password; const char *old_password;
} password_window; } password_window;
@ -385,4 +388,5 @@ void on_mirror_configure_accept(GtkWidget *, dictionary *dict);
char *yon_password_unencrypted_password_get(password_window *window); char *yon_password_unencrypted_password_get(password_window *window);
char *yon_password_hash_get(password_window *window); char *yon_password_hash_get(password_window *window);
void yon_hash_entry_sensitiveness_update(GtkWidget *, password_window *dialog); void yon_hash_entry_sensitiveness_update(GtkWidget *, password_window *dialog);
void on_password_hash_sensitiveness(GtkWidget *,password_window *window);
#endif #endif

@ -188,41 +188,41 @@
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">2</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkBox" id="HashBox"> <object class="GtkCheckButton" id="NoEncriptionCheck">
<property name="visible">True</property> <property name="label" translatable="yes">Do not encrypt password</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkSeparator">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">0</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkCheckButton" id="NoEncriptionCheck"> <object class="GtkSeparator">
<property name="label" translatable="yes">Do not encrypt password</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property> <property name="can-focus">False</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">3</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkBox" id="HashBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
@ -268,7 +268,7 @@
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">3</property> <property name="position">4</property>
</packing> </packing>
</child> </child>
</object> </object>

Loading…
Cancel
Save