TF-2305 Session::getOwnEmailAddress method to fetch the user email address from urn:ietf:params:jmap:principals imip mailto property if not present in the session username, which is the case for Cyrus

This commit is contained in:
Florent Azavant
2025-01-24 11:49:38 +01:00
committed by Dat H. Pham
parent 327af38fb0
commit 6720709a2e
23 changed files with 212 additions and 58 deletions
@@ -9,7 +9,7 @@ import 'package:jmap_dart_client/jmap/mail/email/keyword_identifier.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:model/email/email_action_type.dart';
import 'package:model/extensions/email_address_extension.dart';
import 'package:model/extensions/username_extension.dart';
import 'package:model/extensions/session_extension.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
import 'package:tmail_ui_user/features/composer/presentation/extensions/identity_extension.dart';
@@ -26,7 +26,7 @@ extension CreateEmailRequestExtension on CreateEmailRequest {
if (identity?.email?.isNotEmpty == true) {
return { identity!.toEmailAddress() };
} else {
return { session.username.toEmailAddress() };
return { EmailAddress(null, session.getOwnEmailAddress()) };
}
}
@@ -34,7 +34,7 @@ extension CreateEmailRequestExtension on CreateEmailRequest {
if (emailActionType == EmailActionType.editDraft && fromSender.isNotEmpty) {
return fromSender.first.emailAddress;
} else {
return session.username.value;
return session.getOwnEmailAddress();
}
}
@@ -42,7 +42,7 @@ extension CreateEmailRequestExtension on CreateEmailRequest {
if (identity?.replyTo?.isNotEmpty == true) {
return identity!.replyTo!.toSet();
} else {
return { session.username.toEmailAddress() };
return { EmailAddress(null, session.getOwnEmailAddress()) };
}
}