namespace OCA\Files_Sharing\Listener;
+use OCA\Files_Sharing\AppInfo\Application;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use OCP\IConfig;
}
private function handleAutoAccept(IShare $share, string $userId) {
- if ($this->config->getUserValue($userId, 'files_sharing','default_accept','no') === 'yes') {
+ $defaultAcceptSystemConfig = $this->config->getSystemValueBool('sharing.enable_share_accept', false) ? 'no' : 'yes';
+ $acceptDefault = $this->config->getUserValue($userId, Application::APP_ID, 'default_accept', $defaultAcceptSystemConfig) === 'yes';
+ if (!$this->config->getSystemValueBool('sharing.force_share_accept', false) && $acceptDefault) {
$this->shareManager->acceptShare($share, $userId);
}
}
}
public function getForm(): TemplateResponse {
- $value = $this->config->getUserValue($this->userId, Application::APP_ID, 'default_accept', 'no') === 'yes';
- $this->initialState->provideInitialState(Application::APP_ID, 'accept_default', $value);
+ $defaultAcceptSystemConfig = $this->config->getSystemValueBool('sharing.enable_share_accept', false) ? 'no' : 'yes';
+ $acceptDefault = $this->config->getUserValue($this->userId, Application::APP_ID, 'default_accept', $defaultAcceptSystemConfig) === 'yes';
+ $enforceAccept = $this->config->getSystemValueBool('sharing.force_share_accept', false);
+ $this->initialState->provideInitialState(Application::APP_ID, 'accept_default', $acceptDefault);
+ $this->initialState->provideInitialState(Application::APP_ID, 'enforce_accept', $enforceAccept);
return new TemplateResponse('files_sharing', 'Settings/personal');
}
-->
<template>
- <div id="files-sharing-personal-settings" class="section">
+ <div id="files-sharing-personal-settings" class="section" v-if="!enforceAcceptShares">
<h2>{{ t('files', 'Sharing') }}</h2>
<p>
<input id="files-sharing-personal-settings-accept"
name: 'PersonalSettings',
data() {
return {
- accepting: true,
+ accepting: loadState('files_sharing', 'accept_default'),
+ enforceAcceptShares: loadState('files_sharing', 'enforce_accept'),
}
},
- mounted() {
- this.accepting = loadState('files_sharing', 'accept_default')
- },
methods: {
toggleEnabled() {
axios.put(
'sharing.minSearchStringLength' => 0,
/**
- * Starting with Nextcloud 18 also internal shares have to be accepted. Setting
- * this setting to true forces all internal shares to be accepted directly.
- * (resulting in pre 18 behavior).
+ * Set to true to enable that internal shares need to be accepted by the users by default.
+ * Users can change this for their account in their personal sharing settings
*/
-'sharing.interal_shares_accepted' => false,
+'sharing.enable_share_accept' => false,
+
+/**
+ * Set to true to enforce that internal shares need to be accepted
+ */
+'sharing.force_share_accept' => false,
+
/**
* All other configuration options