Merge pull request #21692 from nextcloud/cleanup/sharebymail
Cleanup share by mail a bit
This commit is contained in:
commit
2a0c7e258a
|
@ -687,7 +687,7 @@ var m=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new Typ
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
var P=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,r;return t=e,(n=[{key:"isPublicUploadEnabled",get:function(){return document.getElementById("filestable")&&"yes"===document.getElementById("filestable").dataset.allowPublicUpload}},{key:"isShareWithLinkAllowed",get:function(){return document.getElementById("allowShareWithLink")&&"yes"===document.getElementById("allowShareWithLink").value}},{key:"federatedShareDocLink",get:function(){return OC.appConfig.core.federatedCloudShareDoc}},{key:"defaultExpirationDateString",get:function(){var e="";if(this.isDefaultExpireDateEnabled){var t=window.moment.utc(),n=this.defaultExpireDate;t.add(n,"days"),e=t.format("YYYY-MM-DD")}return e}},{key:"defaultInternalExpirationDateString",get:function(){var e="";if(this.isDefaultInternalExpireDateEnabled){var t=window.moment.utc(),n=this.defaultInternalExpireDate;t.add(n,"days"),e=t.format("YYYY-MM-DD")}return e}},{key:"enforcePasswordForPublicLink",get:function(){return!0===OC.appConfig.core.enforcePasswordForPublicLink}},{key:"enableLinkPasswordByDefault",get:function(){return!0===OC.appConfig.core.enableLinkPasswordByDefault}},{key:"isDefaultExpireDateEnforced",get:function(){return!0===OC.appConfig.core.defaultExpireDateEnforced}},{key:"isDefaultExpireDateEnabled",get:function(){return!0===OC.appConfig.core.defaultExpireDateEnabled}},{key:"isDefaultInternalExpireDateEnforced",get:function(){return!0===OC.appConfig.core.defaultInternalExpireDateEnforced}},{key:"isDefaultInternalExpireDateEnabled",get:function(){return!0===OC.appConfig.core.defaultInternalExpireDateEnabled}},{key:"isRemoteShareAllowed",get:function(){return!0===OC.appConfig.core.remoteShareAllowed}},{key:"isMailShareAllowed",get:function(){return void 0!==OC.appConfig.shareByMailEnabled&&!0===OC.getCapabilities().files_sharing.public.enabled}},{key:"defaultExpireDate",get:function(){return OC.appConfig.core.defaultExpireDate}},{key:"defaultInternalExpireDate",get:function(){return OC.appConfig.core.defaultInternalExpireDate}},{key:"isResharingAllowed",get:function(){return!0===OC.appConfig.core.resharingAllowed}},{key:"isPasswordForMailSharesRequired",get:function(){return void 0!==OC.appConfig.shareByMail&&!0===OC.appConfig.shareByMail.enforcePasswordProtection}},{key:"allowGroupSharing",get:function(){return!0===OC.appConfig.core.allowGroupSharing}},{key:"maxAutocompleteResults",get:function(){return parseInt(OC.config["sharing.maxAutocompleteResults"],10)||200}},{key:"minSearchStringLength",get:function(){return parseInt(OC.config["sharing.minSearchStringLength"],10)||0}},{key:"passwordPolicy",get:function(){var e=OC.getCapabilities();return e.password_policy?e.password_policy:{}}}])&&O(t.prototype,n),r&&O(t,r),e}();r(290);function j(e,t,n,r,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,o)}function R(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){j(i,r,o,a,s,"next",e)}function s(e){j(i,r,o,a,s,"throw",e)}a(void 0)}))}}
|
var P=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,r;return t=e,(n=[{key:"isPublicUploadEnabled",get:function(){return document.getElementById("filestable")&&"yes"===document.getElementById("filestable").dataset.allowPublicUpload}},{key:"isShareWithLinkAllowed",get:function(){return document.getElementById("allowShareWithLink")&&"yes"===document.getElementById("allowShareWithLink").value}},{key:"federatedShareDocLink",get:function(){return OC.appConfig.core.federatedCloudShareDoc}},{key:"defaultExpirationDateString",get:function(){var e="";if(this.isDefaultExpireDateEnabled){var t=window.moment.utc(),n=this.defaultExpireDate;t.add(n,"days"),e=t.format("YYYY-MM-DD")}return e}},{key:"defaultInternalExpirationDateString",get:function(){var e="";if(this.isDefaultInternalExpireDateEnabled){var t=window.moment.utc(),n=this.defaultInternalExpireDate;t.add(n,"days"),e=t.format("YYYY-MM-DD")}return e}},{key:"enforcePasswordForPublicLink",get:function(){return!0===OC.appConfig.core.enforcePasswordForPublicLink}},{key:"enableLinkPasswordByDefault",get:function(){return!0===OC.appConfig.core.enableLinkPasswordByDefault}},{key:"isDefaultExpireDateEnforced",get:function(){return!0===OC.appConfig.core.defaultExpireDateEnforced}},{key:"isDefaultExpireDateEnabled",get:function(){return!0===OC.appConfig.core.defaultExpireDateEnabled}},{key:"isDefaultInternalExpireDateEnforced",get:function(){return!0===OC.appConfig.core.defaultInternalExpireDateEnforced}},{key:"isDefaultInternalExpireDateEnabled",get:function(){return!0===OC.appConfig.core.defaultInternalExpireDateEnabled}},{key:"isRemoteShareAllowed",get:function(){return!0===OC.appConfig.core.remoteShareAllowed}},{key:"isMailShareAllowed",get:function(){return void 0!==OC.getCapabilities().files_sharing.sharebymail&&!0===OC.getCapabilities().files_sharing.public.enabled}},{key:"defaultExpireDate",get:function(){return OC.appConfig.core.defaultExpireDate}},{key:"defaultInternalExpireDate",get:function(){return OC.appConfig.core.defaultInternalExpireDate}},{key:"isResharingAllowed",get:function(){return!0===OC.appConfig.core.resharingAllowed}},{key:"isPasswordForMailSharesRequired",get:function(){return void 0!==OC.getCapabilities().files_sharing.sharebymail&&OC.getCapabilities().files_sharing.sharebymail.password.enforced}},{key:"allowGroupSharing",get:function(){return!0===OC.appConfig.core.allowGroupSharing}},{key:"maxAutocompleteResults",get:function(){return parseInt(OC.config["sharing.maxAutocompleteResults"],10)||200}},{key:"minSearchStringLength",get:function(){return parseInt(OC.config["sharing.minSearchStringLength"],10)||0}},{key:"passwordPolicy",get:function(){var e=OC.getCapabilities();return e.password_policy?e.password_policy:{}}}])&&O(t.prototype,n),r&&O(t,r),e}();r(290);function j(e,t,n,r,o,i,a){try{var s=e[i](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,o)}function R(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){j(i,r,o,a,s,"next",e)}function s(e){j(i,r,o,a,s,"throw",e)}a(void 0)}))}}
|
||||||
/**
|
/**
|
||||||
* @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
|
* @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
|
||||||
*
|
*
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -178,7 +178,7 @@ export default class Config {
|
||||||
* @memberof Config
|
* @memberof Config
|
||||||
*/
|
*/
|
||||||
get isMailShareAllowed() {
|
get isMailShareAllowed() {
|
||||||
return OC.appConfig.shareByMailEnabled !== undefined
|
return OC.getCapabilities()['files_sharing']['sharebymail'] !== undefined
|
||||||
&& OC.getCapabilities()['files_sharing']['public']['enabled'] === true
|
&& OC.getCapabilities()['files_sharing']['public']['enabled'] === true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -223,7 +223,7 @@ export default class Config {
|
||||||
* @memberof Config
|
* @memberof Config
|
||||||
*/
|
*/
|
||||||
get isPasswordForMailSharesRequired() {
|
get isPasswordForMailSharesRequired() {
|
||||||
return (OC.appConfig.shareByMail === undefined) ? false : OC.appConfig.shareByMail.enforcePasswordProtection === true
|
return (OC.getCapabilities()['files_sharing']['sharebymail'] === undefined) ? false : OC.getCapabilities()['files_sharing']['sharebymail']['password']['enforced']
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
* @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org>
|
|
||||||
*
|
|
||||||
* @author Bjoern Schiessle <bjoern@schiessle.org>
|
|
||||||
* @author Robin Appelman <robin@icewind.nl>
|
|
||||||
*
|
|
||||||
* @license GNU AGPL version 3 or any later version
|
|
||||||
*
|
|
||||||
* 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 <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
use OCA\ShareByMail\AppInfo\Application;
|
|
||||||
|
|
||||||
$app = \OC::$server->query(Application::class);
|
|
|
@ -9,7 +9,6 @@ return array(
|
||||||
'OCA\\ShareByMail\\Activity' => $baseDir . '/../lib/Activity.php',
|
'OCA\\ShareByMail\\Activity' => $baseDir . '/../lib/Activity.php',
|
||||||
'OCA\\ShareByMail\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php',
|
'OCA\\ShareByMail\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php',
|
||||||
'OCA\\ShareByMail\\Capabilities' => $baseDir . '/../lib/Capabilities.php',
|
'OCA\\ShareByMail\\Capabilities' => $baseDir . '/../lib/Capabilities.php',
|
||||||
'OCA\\ShareByMail\\Settings' => $baseDir . '/../lib/Settings.php',
|
|
||||||
'OCA\\ShareByMail\\Settings\\Admin' => $baseDir . '/../lib/Settings/Admin.php',
|
'OCA\\ShareByMail\\Settings\\Admin' => $baseDir . '/../lib/Settings/Admin.php',
|
||||||
'OCA\\ShareByMail\\Settings\\SettingsManager' => $baseDir . '/../lib/Settings/SettingsManager.php',
|
'OCA\\ShareByMail\\Settings\\SettingsManager' => $baseDir . '/../lib/Settings/SettingsManager.php',
|
||||||
'OCA\\ShareByMail\\ShareByMailProvider' => $baseDir . '/../lib/ShareByMailProvider.php',
|
'OCA\\ShareByMail\\ShareByMailProvider' => $baseDir . '/../lib/ShareByMailProvider.php',
|
||||||
|
|
|
@ -24,7 +24,6 @@ class ComposerStaticInitShareByMail
|
||||||
'OCA\\ShareByMail\\Activity' => __DIR__ . '/..' . '/../lib/Activity.php',
|
'OCA\\ShareByMail\\Activity' => __DIR__ . '/..' . '/../lib/Activity.php',
|
||||||
'OCA\\ShareByMail\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php',
|
'OCA\\ShareByMail\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php',
|
||||||
'OCA\\ShareByMail\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php',
|
'OCA\\ShareByMail\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php',
|
||||||
'OCA\\ShareByMail\\Settings' => __DIR__ . '/..' . '/../lib/Settings.php',
|
|
||||||
'OCA\\ShareByMail\\Settings\\Admin' => __DIR__ . '/..' . '/../lib/Settings/Admin.php',
|
'OCA\\ShareByMail\\Settings\\Admin' => __DIR__ . '/..' . '/../lib/Settings/Admin.php',
|
||||||
'OCA\\ShareByMail\\Settings\\SettingsManager' => __DIR__ . '/..' . '/../lib/Settings/SettingsManager.php',
|
'OCA\\ShareByMail\\Settings\\SettingsManager' => __DIR__ . '/..' . '/../lib/Settings/SettingsManager.php',
|
||||||
'OCA\\ShareByMail\\ShareByMailProvider' => __DIR__ . '/..' . '/../lib/ShareByMailProvider.php',
|
'OCA\\ShareByMail\\ShareByMailProvider' => __DIR__ . '/..' . '/../lib/ShareByMailProvider.php',
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
/**
|
/**
|
||||||
* @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org>
|
* @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org>
|
||||||
*
|
*
|
||||||
|
@ -27,23 +29,22 @@
|
||||||
namespace OCA\ShareByMail\AppInfo;
|
namespace OCA\ShareByMail\AppInfo;
|
||||||
|
|
||||||
use OCA\ShareByMail\Capabilities;
|
use OCA\ShareByMail\Capabilities;
|
||||||
use OCA\ShareByMail\Settings;
|
|
||||||
use OCP\AppFramework\App;
|
use OCP\AppFramework\App;
|
||||||
use OCP\Util;
|
use OCP\AppFramework\Bootstrap\IBootContext;
|
||||||
|
use OCP\AppFramework\Bootstrap\IBootstrap;
|
||||||
|
use OCP\AppFramework\Bootstrap\IRegistrationContext;
|
||||||
|
|
||||||
class Application extends App {
|
class Application extends App implements IBootstrap {
|
||||||
public function __construct(array $urlParams = []) {
|
public const APP_ID = 'sharebymail';
|
||||||
parent::__construct('sharebymail', $urlParams);
|
|
||||||
|
|
||||||
$settingsManager = \OC::$server->query(Settings\SettingsManager::class);
|
public function __construct() {
|
||||||
$settings = new Settings($settingsManager);
|
parent::__construct(self::APP_ID);
|
||||||
|
}
|
||||||
|
|
||||||
/** register capabilities */
|
public function register(IRegistrationContext $context): void {
|
||||||
$container = $this->getContainer();
|
$context->registerCapability(Capabilities::class);
|
||||||
$container->registerCapability(Capabilities::class);
|
}
|
||||||
|
|
||||||
/** register hooks */
|
public function boot(IBootContext $context): void {
|
||||||
Util::connectHook('\OCP\Config', 'js', $settings, 'announceShareProvider');
|
|
||||||
Util::connectHook('\OCP\Config', 'js', $settings, 'announceShareByMailSettings');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
/**
|
/**
|
||||||
* @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org>
|
* @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org>
|
||||||
*
|
*
|
||||||
|
@ -23,26 +25,35 @@
|
||||||
|
|
||||||
namespace OCA\ShareByMail;
|
namespace OCA\ShareByMail;
|
||||||
|
|
||||||
|
use OCA\ShareByMail\Settings\SettingsManager;
|
||||||
use OCP\Capabilities\ICapability;
|
use OCP\Capabilities\ICapability;
|
||||||
|
|
||||||
class Capabilities implements ICapability {
|
class Capabilities implements ICapability {
|
||||||
|
|
||||||
/**
|
/** @var SettingsManager */
|
||||||
* Function an app uses to return the capabilities
|
private $manager;
|
||||||
*
|
|
||||||
* @return array Array containing the apps capabilities
|
public function __construct(SettingsManager $manager) {
|
||||||
* @since 8.2.0
|
$this->manager = $manager;
|
||||||
*/
|
}
|
||||||
public function getCapabilities() {
|
|
||||||
|
public function getCapabilities(): array {
|
||||||
return [
|
return [
|
||||||
'files_sharing' =>
|
'files_sharing' =>
|
||||||
[
|
[
|
||||||
'sharebymail' =>
|
'sharebymail' =>
|
||||||
[
|
[
|
||||||
'enabled' => true,
|
'enabled' => true,
|
||||||
'upload_files_drop' => ['enabled' => true],
|
'upload_files_drop' => [
|
||||||
'password' => ['enabled' => true],
|
'enabled' => true,
|
||||||
'expire_date' => ['enabled' => true]
|
],
|
||||||
|
'password' => [
|
||||||
|
'enabled' => true,
|
||||||
|
'enforced' => $this->manager->enforcePasswordProtection(),
|
||||||
|
],
|
||||||
|
'expire_date' => [
|
||||||
|
'enabled' => true,
|
||||||
|
],
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,53 +0,0 @@
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
* @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org>
|
|
||||||
*
|
|
||||||
* @author Bjoern Schiessle <bjoern@schiessle.org>
|
|
||||||
*
|
|
||||||
* @license GNU AGPL version 3 or any later version
|
|
||||||
*
|
|
||||||
* 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 <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace OCA\ShareByMail;
|
|
||||||
|
|
||||||
use OCA\ShareByMail\Settings\SettingsManager;
|
|
||||||
|
|
||||||
class Settings {
|
|
||||||
|
|
||||||
/** @var SettingsManager */
|
|
||||||
private $settingsManager;
|
|
||||||
|
|
||||||
public function __construct(SettingsManager $settingsManager) {
|
|
||||||
$this->settingsManager = $settingsManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* announce that the share-by-mail share provider is enabled
|
|
||||||
*
|
|
||||||
* @param array $settings
|
|
||||||
*/
|
|
||||||
public function announceShareProvider(array $settings) {
|
|
||||||
$array = json_decode($settings['array']['oc_appconfig'], true);
|
|
||||||
$array['shareByMailEnabled'] = true;
|
|
||||||
$settings['array']['oc_appconfig'] = json_encode($array);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function announceShareByMailSettings(array $settings) {
|
|
||||||
$array = json_decode($settings['array']['oc_appconfig'], true);
|
|
||||||
$array['shareByMail']['enforcePasswordProtection'] = $this->settingsManager->enforcePasswordProtection();
|
|
||||||
$settings['array']['oc_appconfig'] = json_encode($array);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,4 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
/**
|
/**
|
||||||
* @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org>
|
* @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org>
|
||||||
*
|
*
|
||||||
|
@ -43,7 +45,7 @@ class SettingsManager {
|
||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function sendPasswordByMail() {
|
public function sendPasswordByMail(): bool {
|
||||||
$sendPasswordByMail = $this->config->getAppValue('sharebymail', 'sendpasswordmail', $this->sendPasswordByMailDefault);
|
$sendPasswordByMail = $this->config->getAppValue('sharebymail', 'sendpasswordmail', $this->sendPasswordByMailDefault);
|
||||||
return $sendPasswordByMail === 'yes';
|
return $sendPasswordByMail === 'yes';
|
||||||
}
|
}
|
||||||
|
@ -53,7 +55,7 @@ class SettingsManager {
|
||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function enforcePasswordProtection() {
|
public function enforcePasswordProtection(): bool {
|
||||||
$enforcePassword = $this->config->getAppValue('sharebymail', 'enforcePasswordProtection', $this->enforcePasswordProtectionDefault);
|
$enforcePassword = $this->config->getAppValue('sharebymail', 'enforcePasswordProtection', $this->enforcePasswordProtectionDefault);
|
||||||
return $enforcePassword === 'yes';
|
return $enforcePassword === 'yes';
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue