TF-939 Check EmailRules & Forwarding & Vacation based on accountCapabilities to visible in Menu

This commit is contained in:
Dat PHAM HOANG
2022-09-16 11:20:35 +07:00
committed by Dat H. Pham
parent ffca17210b
commit 3beb9ec606
3 changed files with 19 additions and 2 deletions
@@ -5,6 +5,7 @@ import 'package:flutter/material.dart';
import 'package:forward/forward/capability_forward.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/mail/vacation/vacation_response.dart';
import 'package:model/model.dart';
@@ -209,6 +210,16 @@ class ManageAccountDashBoardController extends ReloadableController {
}
}
bool checkAvailableVacationInSession() {
try {
requireCapability(sessionCurrent.value!, accountId.value!, [CapabilityIdentifier.jmapVacationResponse]);
return true;
} catch(e) {
logError('ManageAccountDashBoardController::checkAvailableVacationInSession(): exception = $e');
return false;
}
}
bool checkAvailableRuleFilterInSession() {
try {
requireCapability(sessionCurrent.value!, accountId.value!, [capabilityRuleFilter]);
@@ -43,7 +43,9 @@ class ManageAccountMenuController extends BaseController {
if (dashBoardController.checkAvailableForwardInSession()) {
listAccountMenuItem.add(AccountMenuItem.forward);
}
listAccountMenuItem.add(AccountMenuItem.vacation);
if (dashBoardController.checkAvailableVacationInSession()) {
listAccountMenuItem.add(AccountMenuItem.vacation);
}
listAccountMenuItem.add(AccountMenuItem.languageAndRegion);
}
@@ -213,7 +213,11 @@ class SettingsView extends GetWidget<SettingsController> {
return const SizedBox.shrink();
}
case AccountMenuItem.vacation:
return VacationView();
if (controller.manageAccountDashboardController.checkAvailableVacationInSession()) {
return VacationView();
} else {
return const SizedBox.shrink();
}
default:
return const SizedBox.shrink();
}