TF-939 Check EmailRules & Forwarding & Vacation based on accountCapabilities to visible in Menu
This commit is contained in:
committed by
Dat H. Pham
parent
ffca17210b
commit
3beb9ec606
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user