TF-1705 Auto create default folder no role if missing on server CYRUS

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit 918a554f1fbc5816d48dd00bf01be8624b9dcc9b)
This commit is contained in:
dab246
2023-11-02 15:58:51 +07:00
committed by Dat Vu
parent 39e53f0769
commit 17da789fe3
15 changed files with 30 additions and 51 deletions
@@ -181,8 +181,6 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
_handleUnsubscribeMultipleMailboxHasSomeSuccess(success);
} else if (success is CreateDefaultMailboxAllSuccess) {
_refreshMailboxChanges(currentMailboxState: success.currentMailboxState);
} else if (success is CreateDefaultMailboxHasSomeFailure) {
_refreshMailboxChanges(currentMailboxState: success.currentMailboxState);
}
}
@@ -196,7 +194,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
} else if (failure is RefreshChangesAllMailboxFailure) {
_clearNewFolderId();
} else if (failure is CreateDefaultMailboxFailure) {
_refreshMailboxChanges();
refreshAllMailbox();
}
}
@@ -364,8 +362,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
try {
final outboxMailboxIdByRole = mailboxDashBoardController.mapDefaultMailboxIdByRole[PresentationMailbox.roleOutbox];
if (outboxMailboxIdByRole == null) {
final outboxMailboxByName = allMailboxes
.firstWhere((mailbox) => mailbox.name?.toLowerCase() == PresentationMailbox.lowerCaseOutboxMailboxName);
final outboxMailboxByName = findNodeByNameOnFirstLevel(PresentationMailbox.outboxRole)?.item;
mailboxDashBoardController.setOutboxMailbox(outboxMailboxByName);
} else {
mailboxDashBoardController.setOutboxMailbox(mailboxDashBoardController.mapMailboxById[outboxMailboxIdByRole]!);
@@ -416,8 +413,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
void _handleCreateDefaultFolderIfMissing(Map<Role, MailboxId> mapDefaultMailboxRole) {
final listRoleMissing = MailboxConstants.defaultMailboxRoles
.whereNot(mapDefaultMailboxRole.containsKey)
.toSet()
.whereNot((role) => mapDefaultMailboxRole.containsKey(role) || findNodeByNameOnFirstLevel(role.value) != null)
.toList();
log('MailboxController::_handleCreateDefaultFolderIfMissing():listRoleMissing: $listRoleMissing');
final accountId = mailboxDashBoardController.accountId.value;