f7cloud_client/apps/mail/lib/Service/Classification/ClassificationSettingsService.php
root 8b6a0139db f7cloud_client
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:59:26 +00:00

64 lines
1.5 KiB
PHP

<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2024 F7cloud GmbH and F7cloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Mail\Service\Classification;
use OCA\Mail\AppInfo\Application;
use OCA\Mail\Contracts\IUserPreferences;
use OCP\IConfig;
class ClassificationSettingsService {
public function __construct(
private IUserPreferences $preferences,
private IConfig $config,
) {
}
/**
* Whether the classification by importance is enabled for a given user.
*/
public function isClassificationEnabled(string $userId): bool {
$appConfig = $this->config->getAppValue(
Application::APP_ID,
'importance_classification_default',
'yes',
);
$preference = $this->preferences->getPreference(
$userId,
'tag-classified-messages',
$appConfig === 'yes' ? 'true' : 'false',
);
return $preference === 'true';
}
/**
* Whether to classify important mails by default for all users that did not yet toggle the
* preference themselves.
*/
public function isClassificationEnabledByDefault(): bool {
return $this->config->getAppValue(
Application::APP_ID,
'importance_classification_default',
'yes'
) === 'yes';
}
/**
* Enable or disable the classification of important mails for all users that did not yet toggle
* the preference themselves.
*/
public function setClassificationEnabledByDefault(bool $enabledByDefault): void {
$this->config->setAppValue(
Application::APP_ID,
'importance_classification_default',
$enabledByDefault ? 'yes' : 'no',
);
}
}