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