feat(password-recovery): Add password recovery with secret question or secondary email

This commit is contained in:
smizrahi committed 2022-10-03 08:56:41 +02:00
1 parent 6931186bba
commit 656807b77d
47 files changed
+1729 -159

No files matched your search

@@ -489,4 +489,12 @@
/* External Sieve scripts */
"An external Sieve script is active" = "An external Sieve script is active";
"Sieve is a programming language that can be used for email filtering. If you let SOGo handle your filters, vacation and forward settings, your active script will be disabled." = "Sieve is a programming language that can be used for email filtering. If you let SOGo handle your filters, vacation and forward settings, your active script will be disabled.";
"Let SOGo handle everything" = "Let SOGo handle everything";
"Let SOGo handle everything" = "Let SOGo handle everything";
/* Password Recovery */
"Password recovery mode" = "Password recovery";
"Question" = "Question";
"Secondary e-mail" = "Secondary e-mail";
"Answer" = "Answer";
"Password recovery" = "Password recovery";
"Password change" = "Password change";
@@ -489,4 +489,12 @@
/* External Sieve scripts */
"An external Sieve script is active" = "Un script Sieve externe est actif";
"Sieve is a programming language that can be used for email filtering. If you let SOGo handle your filters, vacation and forward settings, your active script will be disabled." = "Sieve est un langage de programmation qui peut être utilisé pour le filtrage des messages. Si vous laissez SOGo gérer vos filtres, votre message d'absence et vos paramètres de transfert, votre script actuel sera désactivé.";
"Let SOGo handle everything" = "Laissez SOGo s'occuper de tout";
"Let SOGo handle everything" = "Laissez SOGo s'occuper de tout";
/* Password Recovery */
"Password recovery mode" = "Récupération de mot de passe";
"Question" = "Question";
"Answer" = "Réponse";
"Secondary e-mail" = "E-mail secondaire";
"Password recovery" = "Récupération de mot de passe";
"Password change" = "Changement de mot de passe";
+12
View File
@@ -206,6 +206,18 @@ static SoProduct *preferencesProduct = nil;
if (![[defaults source] objectForKey: @"SOGoCalendarDefaultReminder"])
[[defaults source] setObject: [defaults calendarDefaultReminder] forKey: @"SOGoCalendarDefaultReminder"];
if (![[defaults source] objectForKey: @"SOGoPasswordRecoveryMode"])
[[defaults source] setObject: [defaults passwordRecoveryMode] forKey: @"SOGoPasswordRecoveryMode"];
if (![[defaults source] objectForKey: @"SOGoPasswordRecoveryQuestion"])
[[defaults source] setObject: [defaults passwordRecoveryQuestion] forKey: @"SOGoPasswordRecoveryQuestion"];
if (![[defaults source] objectForKey: @"SOGoPasswordRecoveryQuestionAnswer"])
[[defaults source] setObject: [defaults passwordRecoveryQuestionAnswer] forKey: @"SOGoPasswordRecoveryQuestionAnswer"];
if (![[defaults source] objectForKey: @"SOGoPasswordRecoverySecondaryEmail"])
[[defaults source] setObject: [defaults passwordRecoverySecondaryEmail] forKey: @"SOGoPasswordRecoverySecondaryEmail"];
// Populate default calendar categories, based on the user's preferred language
if (![[defaults source] objectForKey: @"SOGoCalendarCategories"])
{
+36
View File
@@ -1638,4 +1638,40 @@ static NSArray *reminderValues = nil;
return results;
}
// Password recovery
- (NSArray *) passwordRecoveryList
{
return [NSArray arrayWithObjects:
SOGoPasswordRecoveryDisabled,
SOGoPasswordRecoveryQuestion,
SOGoPasswordRecoverySecondaryEmail,
nil];
}
- (NSArray *) passwordRecoveryQuestionList
{
return [NSArray arrayWithObjects:
SOGoPasswordRecoveryQuestion1,
SOGoPasswordRecoveryQuestion2,
SOGoPasswordRecoveryQuestion3,
nil];
}
- (NSString *) itemPasswordRecoveryText
{
return [self commonLabelForKey: [NSString stringWithFormat: @"passwordRecovery_%@",
item]];
}
- (BOOL) shouldDisplayPasswordRecovery
{
return [[SOGoSystemDefaults sharedSystemDefaults] isPasswordRecoveryEnabled];
}
- (BOOL) shouldDisplayPasswordSection
{
return [self shouldDisplayPasswordRecovery] || [self shouldDisplayPasswordChange];
}
@end