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
@@ -832,15 +832,15 @@ class ComposerController extends BaseController
required EmailActionType actionType,
String? listPost,
}) {
final userName = mailboxDashBoardController.sessionCurrent?.username.value;
final senderEmailAddress = mailboxDashBoardController.sessionCurrent?.getOwnEmailAddress();
final isSender = presentationEmail.from
.asList()
.any((element) => element.emailAddress.isNotEmpty && element.emailAddress == userName);
.any((element) => element.emailAddress.isNotEmpty && element.emailAddress == senderEmailAddress);
final recipients = presentationEmail.generateRecipientsEmailAddressForComposer(
emailActionType: actionType,
isSender: isSender,
userName: userName,
userName: senderEmailAddress,
listPost: listPost,
);
@@ -1506,7 +1506,7 @@ class ComposerController extends BaseController
if (arguments.emailActionType == EmailActionType.editDraft) {
return arguments.presentationEmail?.firstEmailAddressInFrom ?? '';
} else {
return mailboxDashBoardController.sessionCurrent?.username.value ?? '';
return mailboxDashBoardController.sessionCurrent?.getOwnEmailAddress() ?? '';
}
}
return '';
@@ -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()) };
}
}