aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files_sharing/lib/Capabilities.php5
-rw-r--r--apps/settings/lib/Settings/Admin/Sharing.php2
-rw-r--r--core/AppInfo/ConfigLexicon.php13
-rw-r--r--core/Controller/OCJSController.php3
-rw-r--r--lib/private/Share20/Manager.php2
-rw-r--r--lib/private/Template/JSConfigHelper.php6
-rw-r--r--lib/private/TemplateLayout.php3
7 files changed, 29 insertions, 5 deletions
diff --git a/apps/files_sharing/lib/Capabilities.php b/apps/files_sharing/lib/Capabilities.php
index b4fe5a1bb73..460fa7f668a 100644
--- a/apps/files_sharing/lib/Capabilities.php
+++ b/apps/files_sharing/lib/Capabilities.php
@@ -7,8 +7,10 @@
*/
namespace OCA\Files_Sharing;
+use OC\Core\AppInfo\ConfigLexicon;
use OCP\Capabilities\ICapability;
use OCP\Constants;
+use OCP\IAppConfig;
use OCP\IConfig;
use OCP\Share\IManager;
@@ -21,6 +23,7 @@ class Capabilities implements ICapability {
public function __construct(
private IConfig $config,
+ private readonly IAppConfig $appConfig,
private IManager $shareManager,
) {
}
@@ -110,7 +113,7 @@ class Capabilities implements ICapability {
if ($public['password']['enforced']) {
$public['password']['askForOptionalPassword'] = false;
} else {
- $public['password']['askForOptionalPassword'] = ($this->config->getAppValue('core', 'shareapi_enable_link_password_by_default', 'no') === 'yes');
+ $public['password']['askForOptionalPassword'] = $this->appConfig->getValueBool('core', ConfigLexicon::SHARE_LINK_PASSWORD_DEFAULT);
}
$public['expire_date'] = [];
diff --git a/apps/settings/lib/Settings/Admin/Sharing.php b/apps/settings/lib/Settings/Admin/Sharing.php
index e038b2a6231..ec5dcdf624d 100644
--- a/apps/settings/lib/Settings/Admin/Sharing.php
+++ b/apps/settings/lib/Settings/Admin/Sharing.php
@@ -68,7 +68,7 @@ class Sharing implements IDelegatedSettings {
'excludeGroups' => $this->config->getAppValue('core', 'shareapi_exclude_groups', 'no'),
'excludeGroupsList' => json_decode($excludedGroups, true) ?? [],
'publicShareDisclaimerText' => $this->config->getAppValue('core', 'shareapi_public_link_disclaimertext'),
- 'enableLinkPasswordByDefault' => $this->getHumanBooleanConfig('core', 'shareapi_enable_link_password_by_default'),
+ 'enableLinkPasswordByDefault' => $this->appConfig->getValueBool('core', ConfigLexicon::SHARE_LINK_PASSWORD_DEFAULT),
'defaultPermissions' => (int)$this->config->getAppValue('core', 'shareapi_default_permissions', (string)Constants::PERMISSION_ALL),
'defaultInternalExpireDate' => $this->getHumanBooleanConfig('core', 'shareapi_default_internal_expire_date'),
'internalExpireAfterNDays' => $this->config->getAppValue('core', 'shareapi_internal_expire_after_n_days', '7'),
diff --git a/core/AppInfo/ConfigLexicon.php b/core/AppInfo/ConfigLexicon.php
index df8243019ad..064ea56b024 100644
--- a/core/AppInfo/ConfigLexicon.php
+++ b/core/AppInfo/ConfigLexicon.php
@@ -22,6 +22,9 @@ use OCP\Config\ValueType;
class ConfigLexicon implements ILexicon {
public const SHAREAPI_ALLOW_FEDERATION_ON_PUBLIC_SHARES = 'shareapi_allow_federation_on_public_shares';
public const SHARE_CUSTOM_TOKEN = 'shareapi_allow_custom_tokens';
+ public const SHARE_LINK_PASSWORD_DEFAULT = 'shareapi_enable_link_password_by_default';
+ public const SHARE_LINK_PASSWORD_ENFORCED = 'shareapi_enforce_links_password';
+
public const USER_LANGUAGE = 'lang';
public const LASTCRON_TIMESTAMP = 'lastcron';
@@ -49,6 +52,16 @@ class ConfigLexicon implements ILexicon {
lazy: true,
note: 'Shares with guessable tokens may be accessed easily. Shares with custom tokens will continue to be accessible after this setting has been disabled.',
),
+ new Entry(self::SHARE_LINK_PASSWORD_DEFAULT, ValueType::BOOL, false, 'Always ask for a password when sharing document'),
+ new Entry(
+ key: self::SHARE_LINK_PASSWORD_ENFORCED,
+ type: ValueType::BOOL,
+ defaultRaw: fn (Preset $p): bool => match ($p) {
+ Preset::SCHOOL, Preset::UNIVERSITY, Preset::SHARED, Preset::SMALL, Preset::MEDIUM, Preset::LARGE => true,
+ default => false,
+ },
+ definition: 'Enforce password protection when sharing document'
+ ),
new Entry(self::LASTCRON_TIMESTAMP, ValueType::INT, 0, 'timestamp of last cron execution'),
];
}
diff --git a/core/Controller/OCJSController.php b/core/Controller/OCJSController.php
index ea372b43b2e..083ad4b209f 100644
--- a/core/Controller/OCJSController.php
+++ b/core/Controller/OCJSController.php
@@ -20,6 +20,7 @@ use OCP\AppFramework\Http\Attribute\OpenAPI;
use OCP\AppFramework\Http\Attribute\PublicPage;
use OCP\AppFramework\Http\DataDisplayResponse;
use OCP\Defaults;
+use OCP\IAppConfig;
use OCP\IConfig;
use OCP\IGroupManager;
use OCP\IInitialStateService;
@@ -43,6 +44,7 @@ class OCJSController extends Controller {
ISession $session,
IUserSession $userSession,
IConfig $config,
+ IAppConfig $appConfig,
IGroupManager $groupManager,
IniGetWrapper $iniWrapper,
IURLGenerator $urlGenerator,
@@ -62,6 +64,7 @@ class OCJSController extends Controller {
$session,
$userSession->getUser(),
$config,
+ $appConfig,
$groupManager,
$iniWrapper,
$urlGenerator,
diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php
index 855bb173d56..28f29d6b20f 100644
--- a/lib/private/Share20/Manager.php
+++ b/lib/private/Share20/Manager.php
@@ -1778,7 +1778,7 @@ class Manager implements IManager {
}
}
}
- return $this->config->getAppValue('core', 'shareapi_enforce_links_password', 'no') === 'yes';
+ return $this->appConfig->getValueBool('core', ConfigLexicon::SHARE_LINK_PASSWORD_ENFORCED);
}
/**
diff --git a/lib/private/Template/JSConfigHelper.php b/lib/private/Template/JSConfigHelper.php
index 07e557d0706..044fa8147a0 100644
--- a/lib/private/Template/JSConfigHelper.php
+++ b/lib/private/Template/JSConfigHelper.php
@@ -10,6 +10,7 @@ namespace OC\Template;
use bantu\IniGetWrapper\IniGetWrapper;
use OC\Authentication\Token\IProvider;
use OC\CapabilitiesManager;
+use OC\Core\AppInfo\ConfigLexicon;
use OC\Files\FilenameValidator;
use OC\Share\Share;
use OCA\Provisioning_API\Controller\AUserDataOCSController;
@@ -22,6 +23,7 @@ use OCP\Authentication\Token\IToken;
use OCP\Constants;
use OCP\Defaults;
use OCP\Files\FileInfo;
+use OCP\IAppConfig;
use OCP\IConfig;
use OCP\IGroupManager;
use OCP\IInitialStateService;
@@ -50,6 +52,7 @@ class JSConfigHelper {
protected ISession $session,
protected ?IUser $currentUser,
protected IConfig $config,
+ protected readonly IAppConfig $appConfig,
protected IGroupManager $groupManager,
protected IniGetWrapper $iniWrapper,
protected IURLGenerator $urlGenerator,
@@ -94,8 +97,7 @@ class JSConfigHelper {
}
}
- $enableLinkPasswordByDefault = $this->config->getAppValue('core', 'shareapi_enable_link_password_by_default', 'no');
- $enableLinkPasswordByDefault = $enableLinkPasswordByDefault === 'yes';
+ $enableLinkPasswordByDefault = $this->appConfig->getValueBool('core', ConfigLexicon::SHARE_LINK_PASSWORD_DEFAULT);
$defaultExpireDateEnabled = $this->config->getAppValue('core', 'shareapi_default_expire_date', 'no') === 'yes';
$defaultExpireDate = $enforceDefaultExpireDate = null;
if ($defaultExpireDateEnabled) {
diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php
index cfc387d2164..42861eddc0d 100644
--- a/lib/private/TemplateLayout.php
+++ b/lib/private/TemplateLayout.php
@@ -20,6 +20,7 @@ use OC\Template\JSResourceLocator;
use OCP\App\IAppManager;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\Defaults;
+use OCP\IAppConfig;
use OCP\IConfig;
use OCP\IInitialStateService;
use OCP\INavigationManager;
@@ -44,6 +45,7 @@ class TemplateLayout {
public function __construct(
private IConfig $config,
+ private readonly IAppConfig $appConfig,
private IAppManager $appManager,
private InitialStateService $initialState,
private INavigationManager $navigationManager,
@@ -223,6 +225,7 @@ class TemplateLayout {
\OC::$server->getSession(),
\OC::$server->getUserSession()->getUser(),
$this->config,
+ $this->appConfig,
\OC::$server->getGroupManager(),
\OC::$server->get(IniGetWrapper::class),
\OC::$server->getURLGenerator(),