TF-3717 Allow access settings when own email address is null
Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
@@ -428,7 +428,7 @@ abstract class BaseController extends GetxController
|
||||
if (PlatformInfo.isMobile) {
|
||||
showLogoutConfirmDialog(
|
||||
context: context,
|
||||
userAddress: session?.getOwnEmailAddress() ?? '',
|
||||
userAddress: session?.getOwnEmailAddressOrEmpty() ?? '',
|
||||
onConfirmAction: () => _handleLogoutAction(session, accountId),
|
||||
);
|
||||
} else {
|
||||
|
||||
@@ -243,7 +243,7 @@ class ComposerController extends BaseController
|
||||
int? get savedEmailDraftHash => _savedEmailDraftHash;
|
||||
|
||||
GetEmailContentInteractor get getEmailContentInteractor => _getEmailContentInteractor;
|
||||
|
||||
|
||||
GetServerSettingInteractor get getServerSettingInteractor => _getServerSettingInteractor;
|
||||
|
||||
GetAllIdentitiesInteractor get getAllIdentitiesInteractor => _getAllIdentitiesInteractor;
|
||||
@@ -622,7 +622,7 @@ class ComposerController extends BaseController
|
||||
mailboxDashBoardController.accountId.value,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Future<void> setupComposer() async {
|
||||
_isEmailBodyLoaded = false;
|
||||
final arguments = PlatformInfo.isWeb ? composerArgs : Get.arguments;
|
||||
@@ -687,7 +687,7 @@ class ComposerController extends BaseController
|
||||
required EmailActionType actionType,
|
||||
String? listPost,
|
||||
}) {
|
||||
final senderEmailAddress = mailboxDashBoardController.sessionCurrent?.getOwnEmailAddress();
|
||||
final senderEmailAddress = mailboxDashBoardController.sessionCurrent?.getOwnEmailAddressOrEmpty();
|
||||
final isSender = presentationEmail.from
|
||||
.asList()
|
||||
.any((element) => element.emailAddress.isNotEmpty && element.emailAddress == senderEmailAddress);
|
||||
@@ -1285,7 +1285,7 @@ class ComposerController extends BaseController
|
||||
log('ComposerController::handleClickSaveAsTemplateButton: SESSION or ACCOUNT_ID or ARGUMENTS is NULL');
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
MailboxId? templateMailboxId = mailboxDashBoardController
|
||||
.getMailboxIdByRole(PresentationMailbox.roleTemplates);
|
||||
templateMailboxId ??= mailboxDashBoardController.mapMailboxById
|
||||
|
||||
@@ -26,16 +26,20 @@ extension CreateEmailRequestExtension on CreateEmailRequest {
|
||||
Set<EmailAddress> createSenders() {
|
||||
if (identity?.email?.isNotEmpty == true) {
|
||||
return { identity!.toEmailAddress() };
|
||||
} else if (session.getOwnEmailAddressOrEmpty().isNotEmpty) {
|
||||
return { EmailAddress(null, session.getOwnEmailAddressOrEmpty()) };
|
||||
} else {
|
||||
return { EmailAddress(null, session.getOwnEmailAddress()) };
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
String createMdnEmailAddress() {
|
||||
if (emailActionType == EmailActionType.editDraft && fromSender?.isNotEmpty == true) {
|
||||
return fromSender!.first.emailAddress;
|
||||
} else if (session.getOwnEmailAddressOrEmpty().isNotEmpty) {
|
||||
return session.getOwnEmailAddressOrEmpty();
|
||||
} else {
|
||||
return session.getOwnEmailAddress();
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +52,9 @@ extension CreateEmailRequestExtension on CreateEmailRequest {
|
||||
|
||||
return identity?.replyTo?.isNotEmpty == true
|
||||
? identity!.replyTo!
|
||||
: {EmailAddress(null, session.getOwnEmailAddress())};
|
||||
: session.getOwnEmailAddressOrEmpty().isNotEmpty
|
||||
? {EmailAddress(null, session.getOwnEmailAddressOrEmpty())}
|
||||
: null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1623,7 +1623,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
return;
|
||||
}
|
||||
|
||||
final receiverEmailAddress = _getReceiverEmailAddress(currentEmail!) ?? session!.getOwnEmailAddress();
|
||||
final receiverEmailAddress = _getReceiverEmailAddress(currentEmail!) ?? session!.getOwnEmailAddressOrEmpty();
|
||||
log('SingleEmailController::_handleSendReceiptToSenderAction():receiverEmailAddress: $receiverEmailAddress');
|
||||
final mdnToSender = _generateMDN(context, currentEmail!, receiverEmailAddress);
|
||||
final sendReceiptRequest = SendReceiptToSenderRequest(
|
||||
@@ -2568,13 +2568,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
}
|
||||
}
|
||||
|
||||
String getOwnEmailAddress() {
|
||||
try {
|
||||
return session?.getOwnEmailAddress() ?? '';
|
||||
} catch (e) {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
String getOwnEmailAddress() => session?.getOwnEmailAddressOrEmpty() ?? '';
|
||||
|
||||
void onHtmlContentClippedAction(bool isClipped) {
|
||||
log('SingleEmailController::onHtmlContentClippedAction:isClipped = $isClipped');
|
||||
|
||||
@@ -64,7 +64,7 @@ extension SessionExtensions on Session {
|
||||
|
||||
String get internalDomain {
|
||||
try {
|
||||
return getOwnEmailAddress().split('@').last;
|
||||
return getOwnEmailAddressOrEmpty().split('@').last;
|
||||
} catch (e) {
|
||||
logError('SessionExtensions::internalDomain: Exception: $e');
|
||||
return '';
|
||||
|
||||
@@ -359,9 +359,12 @@ class IdentityCreatorController extends BaseController with DragDropFileMixin im
|
||||
.toSet()
|
||||
.toList();
|
||||
|
||||
if(session?.getOwnEmailAddress() != null
|
||||
&& !listEmailAddressDefault.any((emailAddress) => emailAddress.email == session?.getOwnEmailAddress())) {
|
||||
listEmailAddressDefault.add(EmailAddress(null, session?.getOwnEmailAddress()));
|
||||
if(session?.getOwnEmailAddressOrEmpty().isNotEmpty == true
|
||||
&& !listEmailAddressDefault.any((emailAddress) => emailAddress.email == session?.getOwnEmailAddressOrEmpty())) {
|
||||
listEmailAddressDefault.add(EmailAddress(
|
||||
null,
|
||||
session?.getOwnEmailAddressOrEmpty(),
|
||||
));
|
||||
}
|
||||
listEmailAddressOfReplyTo.add(noneEmailAddress);
|
||||
listEmailAddressOfReplyTo.addAll(listEmailAddressDefault);
|
||||
@@ -382,8 +385,11 @@ class IdentityCreatorController extends BaseController with DragDropFileMixin im
|
||||
void _setDefaultEmailAddressList() {
|
||||
listEmailAddressOfReplyTo.add(noneEmailAddress);
|
||||
|
||||
if (session?.getOwnEmailAddress() != null) {
|
||||
final userEmailAddress = EmailAddress(null, session?.getOwnEmailAddress());
|
||||
if (session?.getOwnEmailAddressOrEmpty().isNotEmpty == true) {
|
||||
final userEmailAddress = EmailAddress(
|
||||
null,
|
||||
session?.getOwnEmailAddressOrEmpty(),
|
||||
);
|
||||
listEmailAddressDefault.add(userEmailAddress);
|
||||
listEmailAddressOfReplyTo.addAll(listEmailAddressDefault);
|
||||
}
|
||||
|
||||
+2
-9
@@ -3145,7 +3145,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
position,
|
||||
popupMenuUserSettingActionTile(
|
||||
context,
|
||||
sessionCurrent?.getOwnEmailAddress(),
|
||||
sessionCurrent?.getOwnEmailAddressOrEmpty(),
|
||||
onLogoutAction: () {
|
||||
popBack();
|
||||
logout(
|
||||
@@ -3213,14 +3213,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
}
|
||||
}
|
||||
|
||||
String getOwnEmailAddress() {
|
||||
try {
|
||||
return sessionCurrent?.getOwnEmailAddress() ?? '';
|
||||
} catch (e) {
|
||||
logError('ManageAccountDashBoardController::getOwnEmailAddress:Exception: $e');
|
||||
return '';
|
||||
}
|
||||
}
|
||||
String getOwnEmailAddress() => sessionCurrent?.getOwnEmailAddressOrEmpty() ?? '';
|
||||
|
||||
@override
|
||||
void onClose() {
|
||||
|
||||
@@ -98,7 +98,10 @@ class SearchController extends BaseController with DateRangePickerMixin {
|
||||
sort: <Comparator>{}..add(
|
||||
EmailComparator(EmailComparatorProperty.receivedAt)
|
||||
..setIsAscending(false)),
|
||||
filter: _mappingToFilterOnSuggestionForm(currentUserEmail: session.getOwnEmailAddress(), query: query),
|
||||
filter: _mappingToFilterOnSuggestionForm(
|
||||
currentUserEmail: session.getOwnEmailAddressOrEmpty(),
|
||||
query: query,
|
||||
),
|
||||
properties: EmailUtils.getPropertiesForEmailGetMethod(session, accountId),
|
||||
).then((result) => result.fold(
|
||||
(failure) => <PresentationEmail>[],
|
||||
|
||||
@@ -566,7 +566,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
final searchEmailFilter = controller.searchController.searchEmailFilter.value;
|
||||
final sortOrderType = controller.searchController.sortOrderFiltered;
|
||||
final listAddressOfFrom = controller.searchController.listAddressOfFromFiltered;
|
||||
final currentUserEmail = controller.sessionCurrent?.getOwnEmailAddress();
|
||||
final currentUserEmail = controller.sessionCurrent?.getOwnEmailAddressOrEmpty();
|
||||
final startDate = controller.searchController.startDateFiltered;
|
||||
final endDate = controller.searchController.endDateFiltered;
|
||||
final receiveTimeType = controller.searchController.receiveTimeFiltered;
|
||||
|
||||
@@ -147,7 +147,9 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin {
|
||||
|
||||
if (queryString.isNotEmpty || _searchController.listFilterOnSuggestionForm.isNotEmpty) {
|
||||
_searchController.clearSearchFilter();
|
||||
_searchController.applyFilterSuggestionToSearchFilter(_dashBoardController.sessionCurrent?.getOwnEmailAddress());
|
||||
_searchController.applyFilterSuggestionToSearchFilter(
|
||||
_dashBoardController.sessionCurrent?.getOwnEmailAddressOrEmpty(),
|
||||
);
|
||||
_dashBoardController.searchEmailByQueryString(queryString);
|
||||
} else {
|
||||
_dashBoardController.clearSearchEmail();
|
||||
@@ -167,7 +169,9 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin {
|
||||
_searchController.searchFocus.unfocus();
|
||||
_searchController.enableSearch();
|
||||
_searchController.clearSearchFilter();
|
||||
_searchController.applyFilterSuggestionToSearchFilter(_dashBoardController.sessionCurrent?.getOwnEmailAddress());
|
||||
_searchController.applyFilterSuggestionToSearchFilter(
|
||||
_dashBoardController.sessionCurrent?.getOwnEmailAddressOrEmpty(),
|
||||
);
|
||||
_dashBoardController.searchEmailByQueryString(recent.value);
|
||||
}
|
||||
|
||||
|
||||
@@ -404,14 +404,8 @@ class ManageAccountDashBoardController extends ReloadableController with UserSet
|
||||
accountId: accountId.value!);
|
||||
}
|
||||
|
||||
String getOwnEmailAddress() {
|
||||
try {
|
||||
return sessionCurrent?.getOwnEmailAddress() ?? '';
|
||||
} catch (e) {
|
||||
logError('ManageAccountDashBoardController::getOwnEmailAddress:Exception: $e');
|
||||
return '';
|
||||
}
|
||||
}
|
||||
String getOwnEmailAddress() =>
|
||||
sessionCurrent?.getOwnEmailAddressOrEmpty() ?? '';
|
||||
|
||||
@override
|
||||
void onClose() {
|
||||
|
||||
@@ -257,7 +257,7 @@ class SearchEmailView extends GetWidget<SearchEmailController>
|
||||
final searchEmailFilter = controller.searchEmailFilter.value;
|
||||
final sortOrderType = controller.emailSortOrderType.value;
|
||||
final listAddressOfFrom = controller.listAddressOfFromFiltered;
|
||||
final currentUserEmail = controller.session?.getOwnEmailAddress();
|
||||
final currentUserEmail = controller.session?.getOwnEmailAddressOrEmpty();
|
||||
final startDate = controller.startDateFiltered;
|
||||
final endDate = controller.endDateFiltered;
|
||||
final receiveTimeType = controller.receiveTimeFiltered;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:core/presentation/extensions/uri_extension.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:get/get_utils/src/extensions/string_extensions.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/capability/calendar_event_capability.dart';
|
||||
@@ -71,6 +72,15 @@ extension SessionExtension on Session {
|
||||
}
|
||||
}
|
||||
|
||||
String getOwnEmailAddressOrEmpty() {
|
||||
try {
|
||||
return getOwnEmailAddress();
|
||||
} catch (e) {
|
||||
logError('SessionExtension::getOwnEmailAddressOrEmpty:Exception: $e');
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
String getOwnEmailAddress() {
|
||||
return username.value.isEmail ? username.value
|
||||
: _getOwnEmailAddressFromPersonalAccount()
|
||||
|
||||
Reference in New Issue
Block a user