refactor: anyone can use e2ee except non-owner team members

This commit is contained in:
zhom
2026-03-24 00:55:51 +04:00
parent cd5fd2c970
commit 888631bc48
4 changed files with 9 additions and 17 deletions
+1 -8
View File
@@ -2908,15 +2908,8 @@ pub async fn set_profile_sync_mode(
}
}
// If switching to Encrypted, verify eligibility, password, and generate salt
// If switching to Encrypted, verify password is set and generate salt
if new_mode == SyncMode::Encrypted {
// Only pro users and team owners can enable encryption
if let Some(state) = crate::cloud_auth::CLOUD_AUTH.get_user().await {
if state.user.plan == "team" && state.user.team_role.as_deref() != Some("owner") {
return Err("Profile encryption is available for Pro users and team owners.".to_string());
}
}
if !encryption::has_e2e_password() {
return Err("E2E password not set. Please set a password in Settings first.".to_string());
}
-1
View File
@@ -36,7 +36,6 @@ pub const DEFAULT_EXCLUDE_PATTERNS: &[&str] = &[
"**/storage/temporary/**",
"**/crashes/**",
"**/minidumps/**",
"*.log",
"*.tmp",
"**/LOG",
"**/LOG.old",
+4 -3
View File
@@ -41,10 +41,11 @@ export function ProfileSyncDialog({
cloudUser.plan !== "free" &&
(cloudUser.subscriptionStatus === "active" ||
cloudUser.planPeriod === "lifetime");
// Encryption available to everyone except team members who aren't owners
const canUseEncryption =
isCloudSyncEligible &&
cloudUser != null &&
(cloudUser.plan !== "team" || cloudUser.teamRole === "owner");
cloudUser == null ||
cloudUser.plan !== "team" ||
cloudUser.teamRole === "owner";
const [isSaving, setIsSaving] = useState(false);
const [isSyncing, setIsSyncing] = useState(false);
const [syncMode, setSyncMode] = useState<SyncMode>(
+4 -5
View File
@@ -134,12 +134,11 @@ export function SettingsDialog({
} = usePermissions();
const { trialStatus } = useCommercialTrial();
const { user: cloudUser } = useCloudAuth();
// Encryption is available to everyone except team members who aren't owners
const canUseEncryption =
cloudUser != null &&
cloudUser.plan !== "free" &&
(cloudUser.subscriptionStatus === "active" ||
cloudUser.planPeriod === "lifetime") &&
(cloudUser.plan !== "team" || cloudUser.teamRole === "owner");
cloudUser == null ||
cloudUser.plan !== "team" ||
cloudUser.teamRole === "owner";
const {
currentLanguage,
changeLanguage,