TF-3712 Add SettingsCapability to hide language setting

This commit is contained in:
DatDang
2025-06-04 11:32:24 +07:00
committed by Dat H. Pham
parent 787b9fadd3
commit b576a6d267
7 changed files with 76 additions and 15 deletions
@@ -15,6 +15,7 @@ import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
import 'package:model/download_all/download_all_capability.dart';
import 'package:model/mailbox/mailbox_constants.dart';
import 'package:model/model.dart';
import 'package:server_settings/server_settings/capability_server_settings.dart';
import 'package:tmail_ui_user/features/home/data/model/session_hive_obj.dart';
import 'package:tmail_ui_user/features/home/domain/converter/session_account_converter.dart';
import 'package:tmail_ui_user/features/home/domain/converter/session_capabilities_converter.dart';
@@ -29,6 +30,7 @@ extension SessionExtensions on Session {
linagoraContactSupportCapability: ContactSupportCapability.deserialize,
tmailContactCapabilityIdentifier: AutocompleteCapability.deserialize,
linagoraDownloadAllCapability: DownloadAllCapability.deserialize,
capabilityServerSettings: SettingsCapability.deserialize,
};
Map<String, dynamic> toJson() {
@@ -139,4 +141,12 @@ extension SessionExtensions on Session {
return false;
}
}
bool isLanguageReadOnly(AccountId accountId) {
final settingsCapability = getCapabilityProperties<SettingsCapability>(
accountId,
capabilityServerSettings,
);
return settingsCapability?.readOnlyProperties?.contains('language') == true;
}
}