mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-26 19:58:53 +02:00
Moved gravatar and update checking settings to the settings-bundle system
This commit is contained in:
parent
2bc50b2888
commit
2ef46cdd34
9 changed files with 90 additions and 25 deletions
5
.env
5
.env
|
@ -37,16 +37,11 @@ DEFAULT_LANG="en"
|
|||
DEFAULT_TIMEZONE="Europe/Berlin"
|
||||
# The currency that is used inside the DB (and is assumed when no currency is set). This can not be changed later, so be sure to set it the currency used in your country
|
||||
BASE_CURRENCY="EUR"
|
||||
# Use gravatars for user avatars, when user has no own avatar defined
|
||||
USE_GRAVATAR=0
|
||||
|
||||
# The public reachable URL of this Part-DB installation. This is used for generating links in SAML and email templates
|
||||
# This must end with a slash!
|
||||
DEFAULT_URI="https://partdb.changeme.invalid/"
|
||||
|
||||
# Disable that if you do not want that Part-DB connects to GitHub to check for available updates, or if your server can not connect to the internet
|
||||
CHECK_FOR_UPDATES=1
|
||||
|
||||
###################################################################################
|
||||
# Email settings
|
||||
###################################################################################
|
||||
|
|
|
@ -21,11 +21,8 @@ parameters:
|
|||
# Users and Privacy
|
||||
######################################################################################################################
|
||||
partdb.gdpr_compliance: true # If this option is activated, IP addresses are anonymized to be GDPR compliant
|
||||
partdb.users.use_gravatar: '%env(bool:USE_GRAVATAR)%' # Set to false, if no Gravatar images should be used for user profiles.
|
||||
partdb.users.email_pw_reset: '%env(bool:ALLOW_EMAIL_PW_RESET)%' # Config if users are able, to reset their password by email. By default this enabled, when a mail server is configured.
|
||||
|
||||
partdb.check_for_updates: '%env(bool:CHECK_FOR_UPDATES)' # Set to false, if Part-DB should not contact the GitHub API to check for updates
|
||||
|
||||
######################################################################################################################
|
||||
# Mail settings
|
||||
######################################################################################################################
|
||||
|
@ -110,7 +107,6 @@ parameters:
|
|||
env(DEFAULT_TIMEZONE): 'Europe/Berlin'
|
||||
env(INSTANCE_NAME): 'Part-DB'
|
||||
env(BASE_CURRENCY): 'EUR'
|
||||
env(USE_GRAVATAR): '0'
|
||||
|
||||
env(REDIRECT_TO_HTTPS): 0
|
||||
|
||||
|
|
|
@ -184,10 +184,6 @@ services:
|
|||
tags:
|
||||
- { name: 'translation.extractor', alias: 'permissionExtractor'}
|
||||
|
||||
App\Services\UserSystem\UserAvatarHelper:
|
||||
arguments:
|
||||
$use_gravatar: '%partdb.users.use_gravatar%'
|
||||
|
||||
App\Form\Type\ThemeChoiceType:
|
||||
arguments:
|
||||
$available_themes: '%partdb.available_themes%'
|
||||
|
@ -313,10 +309,6 @@ services:
|
|||
arguments:
|
||||
$project_dir: '%kernel.project_dir%'
|
||||
|
||||
App\Services\System\UpdateAvailableManager:
|
||||
arguments:
|
||||
$check_for_updates: '%partdb.check_for_updates%'
|
||||
|
||||
|
||||
App\Doctrine\Middleware\MySQLSSLConnectionMiddlewareWrapper:
|
||||
arguments:
|
||||
|
|
|
@ -63,7 +63,7 @@ class ToolsController extends AbstractController
|
|||
'enabled_locales' => $this->getParameter('partdb.locale_menu'),
|
||||
'demo_mode' => $this->getParameter('partdb.demo_mode'),
|
||||
'gpdr_compliance' => $this->getParameter('partdb.gdpr_compliance'),
|
||||
'use_gravatar' => $this->getParameter('partdb.users.use_gravatar'),
|
||||
'use_gravatar' => $settings->system->privacy->useGravatar,
|
||||
'email_password_reset' => $this->getParameter('partdb.users.email_pw_reset'),
|
||||
'enviroment' => $this->getParameter('kernel.environment'),
|
||||
'is_debug' => $this->getParameter('kernel.debug'),
|
||||
|
|
|
@ -23,6 +23,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Services\System;
|
||||
|
||||
use App\Settings\SystemSettings\PrivacySettings;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Shivas\VersioningBundle\Service\VersionManagerInterface;
|
||||
use Symfony\Component\DependencyInjection\Attribute\Autowire;
|
||||
|
@ -43,7 +44,7 @@ class UpdateAvailableManager
|
|||
|
||||
public function __construct(private readonly HttpClientInterface $httpClient,
|
||||
private readonly CacheInterface $updateCache, private readonly VersionManagerInterface $versionManager,
|
||||
private readonly bool $check_for_updates, private readonly LoggerInterface $logger,
|
||||
private readonly PrivacySettings $privacySettings, private readonly LoggerInterface $logger,
|
||||
#[Autowire(param: 'kernel.debug')] private readonly bool $is_dev_mode)
|
||||
{
|
||||
|
||||
|
@ -83,7 +84,7 @@ class UpdateAvailableManager
|
|||
public function isUpdateAvailable(): bool
|
||||
{
|
||||
//If we don't want to check for updates, we can return false
|
||||
if (!$this->check_for_updates) {
|
||||
if (!$this->privacySettings->checkForUpdates) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -101,7 +102,7 @@ class UpdateAvailableManager
|
|||
private function getLatestVersionInfo(): array
|
||||
{
|
||||
//If we don't want to check for updates, we can return dummy data
|
||||
if (!$this->check_for_updates) {
|
||||
if (!$this->privacySettings->checkForUpdates) {
|
||||
return [
|
||||
'version' => '0.0.1',
|
||||
'url' => 'update-checking-disabled'
|
||||
|
|
|
@ -30,6 +30,7 @@ use App\Entity\Attachments\UserAttachment;
|
|||
use App\Entity\UserSystem\User;
|
||||
use App\Services\Attachments\AttachmentSubmitHandler;
|
||||
use App\Services\Attachments\AttachmentURLGenerator;
|
||||
use App\Settings\SystemSettings\PrivacySettings;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Component\Asset\Packages;
|
||||
use Symfony\Component\HttpFoundation\File\UploadedFile;
|
||||
|
@ -42,7 +43,7 @@ class UserAvatarHelper
|
|||
public const IMG_DEFAULT_AVATAR_PATH = 'img/default_avatar.svg';
|
||||
|
||||
public function __construct(
|
||||
private readonly bool $use_gravatar,
|
||||
private readonly PrivacySettings $privacySettings,
|
||||
private readonly Packages $packages,
|
||||
private readonly AttachmentURLGenerator $attachmentURLGenerator,
|
||||
private readonly EntityManagerInterface $entityManager,
|
||||
|
@ -65,7 +66,7 @@ class UserAvatarHelper
|
|||
}
|
||||
|
||||
//If not check if gravatar is enabled (then use gravatar URL)
|
||||
if ($this->use_gravatar) {
|
||||
if ($this->privacySettings->useGravatar) {
|
||||
return $this->getGravatar($user, 200); //200px wide picture
|
||||
}
|
||||
|
||||
|
@ -82,7 +83,7 @@ class UserAvatarHelper
|
|||
}
|
||||
|
||||
//If not check if gravatar is enabled (then use gravatar URL)
|
||||
if ($this->use_gravatar) {
|
||||
if ($this->privacySettings->useGravatar) {
|
||||
return $this->getGravatar($user, 50); //50px wide picture
|
||||
}
|
||||
|
||||
|
@ -99,7 +100,7 @@ class UserAvatarHelper
|
|||
}
|
||||
|
||||
//If not check if gravatar is enabled (then use gravatar URL)
|
||||
if ($this->use_gravatar) {
|
||||
if ($this->privacySettings->useGravatar) {
|
||||
return $this->getGravatar($user, 150);
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ namespace App\Settings;
|
|||
use App\Settings\SystemSettings\AttachmentsSettings;
|
||||
use App\Settings\SystemSettings\CustomizationSettings;
|
||||
use App\Settings\SystemSettings\HistorySettings;
|
||||
use App\Settings\SystemSettings\PrivacySettings;
|
||||
use Jbtronics\SettingsBundle\Settings\EmbeddedSettings;
|
||||
use Jbtronics\SettingsBundle\Settings\Settings;
|
||||
|
||||
|
@ -35,6 +36,9 @@ class SystemSettings
|
|||
#[EmbeddedSettings()]
|
||||
public ?CustomizationSettings $customization = null;
|
||||
|
||||
#[EmbeddedSettings()]
|
||||
public ?PrivacySettings $privacy = null;
|
||||
|
||||
#[EmbeddedSettings()]
|
||||
public ?AttachmentsSettings $attachments = null;
|
||||
|
||||
|
|
52
src/Settings/SystemSettings/PrivacySettings.php
Normal file
52
src/Settings/SystemSettings/PrivacySettings.php
Normal file
|
@ -0,0 +1,52 @@
|
|||
<?php
|
||||
/*
|
||||
* This file is part of Part-DB (https://github.com/Part-DB/Part-DB-symfony).
|
||||
*
|
||||
* Copyright (C) 2019 - 2024 Jan Böhmer (https://github.com/jbtronics)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published
|
||||
* by the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
|
||||
namespace App\Settings\SystemSettings;
|
||||
|
||||
use Jbtronics\SettingsBundle\Metadata\EnvVarMode;
|
||||
use Jbtronics\SettingsBundle\Settings\Settings;
|
||||
use Jbtronics\SettingsBundle\Settings\SettingsParameter;
|
||||
use Jbtronics\SettingsBundle\Settings\SettingsTrait;
|
||||
use Symfony\Component\Translation\TranslatableMessage as TM;
|
||||
|
||||
#[Settings]
|
||||
class PrivacySettings
|
||||
{
|
||||
use SettingsTrait;
|
||||
|
||||
#[SettingsParameter(
|
||||
label: new TM("settings.system.privacy.checkForUpdates"),
|
||||
description: new TM("settings.system.privacy.checkForUpdates.description"),
|
||||
envVar: 'bool:CHECK_FOR_UPDATES', envVarMode: EnvVarMode::OVERWRITE)]
|
||||
public bool $checkForUpdates = true;
|
||||
|
||||
/**
|
||||
* @var bool Use gravatars for user avatars, when user has no own avatar defined
|
||||
*/
|
||||
#[SettingsParameter(
|
||||
label: new TM("settings.system.privacy.useGravatar"),
|
||||
description: new TM("settings.system.privacy.useGravatar.description"),
|
||||
envVar: 'bool:USE_GRAVATAR', envVarMode: EnvVarMode::OVERWRITE)]
|
||||
public bool $useGravatar = false;
|
||||
|
||||
}
|
|
@ -12527,5 +12527,29 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<target>Data structure deletion</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="Zq5CzmY" name="settings.system.privacy.useGravatar">
|
||||
<segment>
|
||||
<source>settings.system.privacy.useGravatar</source>
|
||||
<target>Use Gravatar avatars</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="sEoU2wK" name="settings.system.privacy.useGravatar.description">
|
||||
<segment>
|
||||
<source>settings.system.privacy.useGravatar.description</source>
|
||||
<target>If a user does not have an avatar image specified, use the avatar from Gravatar based on the user email. This causes the browser to load pictures from a third-party!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="BDvK0bP" name="settings.system.privacy.checkForUpdates">
|
||||
<segment>
|
||||
<source>settings.system.privacy.checkForUpdates</source>
|
||||
<target>Check for Part-DB updates</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="lAbjHIw" name="settings.system.privacy.checkForUpdates.description">
|
||||
<segment>
|
||||
<source>settings.system.privacy.checkForUpdates.description</source>
|
||||
<target>Part-DB regularly checks if a new version is available on GitHub. Disable this here, if you do not want this or if your server can not connect to the internet.</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue