Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorszaimen <szaimen@e.mail.de>2021-09-20 13:11:42 +0300
committerGitHub <noreply@github.com>2021-09-20 13:11:42 +0300
commitd253d52007ce52a33238fef68b8f2c9c50f9ffb5 (patch)
treeac0a5e10f443a94898fd647def158045f9cd7d6b
parent65988e713f59a789854747524a3584b8749c3dd1 (diff)
parentb3c79272609c8cd6d8245f6653b2645180635214 (diff)
Merge pull request #28837 from nextcloud/show-warning-if-sharing-app-disabled
Show warning on the share settings when the File Shares app is disabled
-rw-r--r--apps/settings/lib/Settings/Admin/Sharing.php13
-rw-r--r--apps/settings/templates/settings/admin/sharing.php281
-rw-r--r--apps/settings/tests/Settings/Admin/SharingTest.php30
3 files changed, 173 insertions, 151 deletions
diff --git a/apps/settings/lib/Settings/Admin/Sharing.php b/apps/settings/lib/Settings/Admin/Sharing.php
index 85d3e4d8d40..24be9f1426a 100644
--- a/apps/settings/lib/Settings/Admin/Sharing.php
+++ b/apps/settings/lib/Settings/Admin/Sharing.php
@@ -12,6 +12,7 @@
* @author Roeland Jago Douma <roeland@famdouma.nl>
* @author Sascha Wiswedel <sascha.wiswedel@nextcloud.com>
* @author Vincent Petry <vincent@nextcloud.com>
+ * @author Thomas Citharel <nextcloud@tcit.fr>
*
* @license GNU AGPL version 3 or any later version
*
@@ -31,7 +32,7 @@
*/
namespace OCA\Settings\Settings\Admin;
-use OC\Share\Share;
+use OCP\App\IAppManager;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\Constants;
use OCP\IConfig;
@@ -50,13 +51,14 @@ class Sharing implements ISettings {
/** @var IManager */
private $shareManager;
- /**
- * @param IConfig $config
- */
- public function __construct(IConfig $config, IL10N $l, IManager $shareManager) {
+ /** @var IAppManager */
+ private $appManager;
+
+ public function __construct(IConfig $config, IL10N $l, IManager $shareManager, IAppManager $appManager) {
$this->config = $config;
$this->l = $l;
$this->shareManager = $shareManager;
+ $this->appManager = $appManager;
}
/**
@@ -72,6 +74,7 @@ class Sharing implements ISettings {
$parameters = [
// Built-In Sharing
+ 'sharingAppEnabled' => $this->appManager->isEnabledForUser('files_sharing'),
'allowGroupSharing' => $this->config->getAppValue('core', 'shareapi_allow_group_sharing', 'yes'),
'allowLinks' => $this->config->getAppValue('core', 'shareapi_allow_links', 'yes'),
'allowLinksExcludeGroups' => $linksExcludeGroupsList,
diff --git a/apps/settings/templates/settings/admin/sharing.php b/apps/settings/templates/settings/admin/sharing.php
index 75ad6f76d23..62be48dc99d 100644
--- a/apps/settings/templates/settings/admin/sharing.php
+++ b/apps/settings/templates/settings/admin/sharing.php
@@ -3,6 +3,7 @@
* @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de>
*
* @author Arthur Schiwon <blizzz@arthur-schiwon.de>
+ * @author Thomas Citharel <nextcloud@tcit.fr>
*
* @license GNU AGPL version 3 or any later version
*
@@ -28,234 +29,240 @@
<div class="section" id="shareAPI">
<h2><?php p($l->t('Sharing'));?></h2>
- <a target="_blank" rel="noreferrer noopener" class="icon-info"
- title="<?php p($l->t('Open documentation'));?>"
- href="<?php p(link_to_docs('admin-sharing')); ?>"></a>
- <p class="settings-hint"><?php p($l->t('As admin you can fine-tune the sharing behavior. Please see the documentation for more information.'));?></p>
- <p id="enable">
- <input type="checkbox" name="shareapi_enabled" id="shareAPIEnabled" class="checkbox"
- value="1" <?php if ($_['shareAPIEnabled'] === 'yes') {
+ <?php if ($_['sharingAppEnabled'] === false) { ?>
+ <p class="warning"><?php p($l->t('You need to enable the File sharing App.')); ?></p>
+ <?php } else { ?>
+ <div>
+ <a target="_blank" rel="noreferrer noopener" class="icon-info"
+ title="<?php p($l->t('Open documentation'));?>"
+ href="<?php p(link_to_docs('admin-sharing')); ?>"></a>
+ <p class="settings-hint"><?php p($l->t('As admin you can fine-tune the sharing behavior. Please see the documentation for more information.'));?></p>
+ <p id="enable">
+ <input type="checkbox" name="shareapi_enabled" id="shareAPIEnabled" class="checkbox"
+ value="1" <?php if ($_['shareAPIEnabled'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="shareAPIEnabled"><?php p($l->t('Allow apps to use the Share API'));?></label><br/>
- </p>
+ <label for="shareAPIEnabled"><?php p($l->t('Allow apps to use the Share API'));?></label><br/>
+ </p>
- <p id="internalShareSettings" class="indent <?php if ($_['shareAPIEnabled'] === 'no') {
+ <p id="internalShareSettings" class="indent <?php if ($_['shareAPIEnabled'] === 'no') {
p('hidden');
} ?>">
- <input type="checkbox" name="shareapi_default_internal_expire_date" id="shareapiDefaultInternalExpireDate" class="checkbox"
- value="1" <?php if ($_['shareDefaultInternalExpireDateSet'] === 'yes') {
+ <input type="checkbox" name="shareapi_default_internal_expire_date" id="shareapiDefaultInternalExpireDate" class="checkbox"
+ value="1" <?php if ($_['shareDefaultInternalExpireDateSet'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="shareapiDefaultInternalExpireDate"><?php p($l->t('Set default expiration date for shares'));?></label><br/>
- </p>
- <p id="setDefaultInternalExpireDate" class="double-indent <?php if ($_['shareDefaultInternalExpireDateSet'] === 'no' || $_['shareAPIEnabled'] === 'no') {
+ <label for="shareapiDefaultInternalExpireDate"><?php p($l->t('Set default expiration date for shares'));?></label><br/>
+ </p>
+ <p id="setDefaultInternalExpireDate" class="double-indent <?php if ($_['shareDefaultInternalExpireDateSet'] === 'no' || $_['shareAPIEnabled'] === 'no') {
p('hidden');
}?>">
- <?php p($l->t('Expire after') . ' '); ?>
- <input type="text" name='shareapi_internal_expire_after_n_days' id="shareapiInternalExpireAfterNDays" placeholder="<?php p('7')?>"
- value='<?php p($_['shareInternalExpireAfterNDays']) ?>' />
- <?php p($l->t('day(s)')); ?>
- <input type="checkbox" name="shareapi_enforce_internal_expire_date" id="shareapiInternalEnforceExpireDate" class="checkbox"
- value="1" <?php if ($_['shareInternalEnforceExpireDate'] === 'yes') {
+ <?php p($l->t('Expire after') . ' '); ?>
+ <input type="text" name='shareapi_internal_expire_after_n_days' id="shareapiInternalExpireAfterNDays" placeholder="<?php p('7')?>"
+ value='<?php p($_['shareInternalExpireAfterNDays']) ?>' />
+ <?php p($l->t('day(s)')); ?>
+ <input type="checkbox" name="shareapi_enforce_internal_expire_date" id="shareapiInternalEnforceExpireDate" class="checkbox"
+ value="1" <?php if ($_['shareInternalEnforceExpireDate'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="shareapiInternalEnforceExpireDate"><?php p($l->t('Enforce expiration date'));?></label><br/>
- </p>
+ <label for="shareapiInternalEnforceExpireDate"><?php p($l->t('Enforce expiration date'));?></label><br/>
+ </p>
- <p id="remoteShareSettings" class="indent <?php if ($_['shareAPIEnabled'] === 'no') {
+ <p id="remoteShareSettings" class="indent <?php if ($_['shareAPIEnabled'] === 'no') {
p('hidden');
} ?>">
- <input type="checkbox" name="shareapi_default_remote_expire_date" id="shareapiDefaultRemoteExpireDate" class="checkbox"
- value="1" <?php if ($_['shareDefaultRemoteExpireDateSet'] === 'yes') {
+ <input type="checkbox" name="shareapi_default_remote_expire_date" id="shareapiDefaultRemoteExpireDate" class="checkbox"
+ value="1" <?php if ($_['shareDefaultRemoteExpireDateSet'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="shareapiDefaultRemoteExpireDate"><?php p($l->t('Set default expiration date for shares to other servers'));?></label><br/>
- </p>
- <p id="setDefaultRemoteExpireDate" class="double-indent <?php if ($_['shareDefaultRemoteExpireDateSet'] === 'no' || $_['shareAPIEnabled'] === 'no') {
+ <label for="shareapiDefaultRemoteExpireDate"><?php p($l->t('Set default expiration date for shares to other servers'));?></label><br/>
+ </p>
+ <p id="setDefaultRemoteExpireDate" class="double-indent <?php if ($_['shareDefaultRemoteExpireDateSet'] === 'no' || $_['shareAPIEnabled'] === 'no') {
p('hidden');
}?>">
- <?php p($l->t('Expire after'). ' '); ?>
- <input type="text" name='shareapi_remote_expire_after_n_days' id="shareapiRemoteExpireAfterNDays" placeholder="<?php p('7')?>"
- value='<?php p($_['shareRemoteExpireAfterNDays']) ?>' />
- <?php p($l->t('day(s)')); ?>
- <input type="checkbox" name="shareapi_enforce_remote_expire_date" id="shareapiRemoteEnforceExpireDate" class="checkbox"
- value="1" <?php if ($_['shareRemoteEnforceExpireDate'] === 'yes') {
+ <?php p($l->t('Expire after'). ' '); ?>
+ <input type="text" name='shareapi_remote_expire_after_n_days' id="shareapiRemoteExpireAfterNDays" placeholder="<?php p('7')?>"
+ value='<?php p($_['shareRemoteExpireAfterNDays']) ?>' />
+ <?php p($l->t('day(s)')); ?>
+ <input type="checkbox" name="shareapi_enforce_remote_expire_date" id="shareapiRemoteEnforceExpireDate" class="checkbox"
+ value="1" <?php if ($_['shareRemoteEnforceExpireDate'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="shareapiRemoteEnforceExpireDate"><?php p($l->t('Enforce expiration date'));?></label><br/>
- </p>
+ <label for="shareapiRemoteEnforceExpireDate"><?php p($l->t('Enforce expiration date'));?></label><br/>
+ </p>
- <p class="<?php if ($_['shareAPIEnabled'] === 'no') {
+ <p class="<?php if ($_['shareAPIEnabled'] === 'no') {
p('hidden');
}?>">
- <input type="checkbox" name="shareapi_allow_links" id="allowLinks" class="checkbox"
- value="1" <?php if ($_['allowLinks'] === 'yes') {
+ <input type="checkbox" name="shareapi_allow_links" id="allowLinks" class="checkbox"
+ value="1" <?php if ($_['allowLinks'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="allowLinks"><?php p($l->t('Allow users to share via link and emails'));?></label><br/>
- </p>
+ <label for="allowLinks"><?php p($l->t('Allow users to share via link and emails'));?></label><br/>
+ </p>
- <p id="publicLinkSettings" class="indent <?php if ($_['allowLinks'] !== 'yes' || $_['shareAPIEnabled'] === 'no') {
+ <p id="publicLinkSettings" class="indent <?php if ($_['allowLinks'] !== 'yes' || $_['shareAPIEnabled'] === 'no') {
p('hidden');
} ?>">
- <input type="checkbox" name="shareapi_allow_public_upload" id="allowPublicUpload" class="checkbox"
- value="1" <?php if ($_['allowPublicUpload'] == 'yes') {
+ <input type="checkbox" name="shareapi_allow_public_upload" id="allowPublicUpload" class="checkbox"
+ value="1" <?php if ($_['allowPublicUpload'] == 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="allowPublicUpload"><?php p($l->t('Allow public uploads'));?></label><br/>
- <input type="checkbox" name="shareapi_enable_link_password_by_default" id="enableLinkPasswordByDefault" class="checkbox"
- value="1" <?php if ($_['enableLinkPasswordByDefault'] === 'yes') {
+ <label for="allowPublicUpload"><?php p($l->t('Allow public uploads'));?></label><br/>
+ <input type="checkbox" name="shareapi_enable_link_password_by_default" id="enableLinkPasswordByDefault" class="checkbox"
+ value="1" <?php if ($_['enableLinkPasswordByDefault'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="enableLinkPasswordByDefault"><?php p($l->t('Always ask for a password'));?></label><br/>
- <input type="checkbox" name="shareapi_enforce_links_password" id="enforceLinkPassword" class="checkbox"
- value="1" <?php if ($_['enforceLinkPassword']) {
+ <label for="enableLinkPasswordByDefault"><?php p($l->t('Always ask for a password'));?></label><br/>
+ <input type="checkbox" name="shareapi_enforce_links_password" id="enforceLinkPassword" class="checkbox"
+ value="1" <?php if ($_['enforceLinkPassword']) {
print_unescaped('checked="checked"');
} ?> />
- <label for="enforceLinkPassword"><?php p($l->t('Enforce password protection'));?></label><br/>
+ <label for="enforceLinkPassword"><?php p($l->t('Enforce password protection'));?></label><br/>
- <input type="checkbox" name="shareapi_default_expire_date" id="shareapiDefaultExpireDate" class="checkbox"
- value="1" <?php if ($_['shareDefaultExpireDateSet'] === 'yes') {
+ <input type="checkbox" name="shareapi_default_expire_date" id="shareapiDefaultExpireDate" class="checkbox"
+ value="1" <?php if ($_['shareDefaultExpireDateSet'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="shareapiDefaultExpireDate"><?php p($l->t('Set default expiration date'));?></label><br/>
+ <label for="shareapiDefaultExpireDate"><?php p($l->t('Set default expiration date'));?></label><br/>
- </p>
- <p id="setDefaultExpireDate" class="double-indent <?php if ($_['allowLinks'] !== 'yes' || $_['shareDefaultExpireDateSet'] === 'no' || $_['shareAPIEnabled'] === 'no') {
+ </p>
+ <p id="setDefaultExpireDate" class="double-indent <?php if ($_['allowLinks'] !== 'yes' || $_['shareDefaultExpireDateSet'] === 'no' || $_['shareAPIEnabled'] === 'no') {
p('hidden');
}?>">
- <?php p($l->t('Expire after'). ' '); ?>
- <input type="text" name='shareapi_expire_after_n_days' id="shareapiExpireAfterNDays" placeholder="<?php p('7')?>"
- value='<?php p($_['shareExpireAfterNDays']) ?>' />
- <?php p($l->t('day(s)')); ?>
- <input type="checkbox" name="shareapi_enforce_expire_date" id="shareapiEnforceExpireDate" class="checkbox"
- value="1" <?php if ($_['shareEnforceExpireDate'] === 'yes') {
+ <?php p($l->t('Expire after'). ' '); ?>
+ <input type="text" name='shareapi_expire_after_n_days' id="shareapiExpireAfterNDays" placeholder="<?php p('7')?>"
+ value='<?php p($_['shareExpireAfterNDays']) ?>' />
+ <?php p($l->t('day(s)')); ?>
+ <input type="checkbox" name="shareapi_enforce_expire_date" id="shareapiEnforceExpireDate" class="checkbox"
+ value="1" <?php if ($_['shareEnforceExpireDate'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="shareapiEnforceExpireDate"><?php p($l->t('Enforce expiration date'));?></label><br/>
- </p>
- <p class="<?php if ($_['shareAPIEnabled'] === 'no') {
+ <label for="shareapiEnforceExpireDate"><?php p($l->t('Enforce expiration date'));?></label><br/>
+ </p>
+ <p class="<?php if ($_['shareAPIEnabled'] === 'no') {
p('hidden');
}?>">
- <p class="indent">
- <?php p($l->t('Exclude groups from creating link shares:'));?>
- </p>
- <p id="selectLinksExcludedGroups" class="indent <?php if ($_['allowLinks'] === 'no') {
+ <p class="indent">
+ <?php p($l->t('Exclude groups from creating link shares:'));?>
+ </p>
+ <p id="selectLinksExcludedGroups" class="indent <?php if ($_['allowLinks'] === 'no') {
p('hidden');
} ?>">
- <input name="shareapi_allow_links_exclude_groups" type="hidden" id="linksExcludedGroups" value="<?php p($_['allowLinksExcludeGroups']) ?>" style="width: 400px" class="noJSAutoUpdate"/>
- </p>
- <input type="checkbox" name="shareapi_allow_resharing" id="allowResharing" class="checkbox"
- value="1" <?php if ($_['allowResharing'] === 'yes') {
+ <input name="shareapi_allow_links_exclude_groups" type="hidden" id="linksExcludedGroups" value="<?php p($_['allowLinksExcludeGroups']) ?>" style="width: 400px" class="noJSAutoUpdate"/>
+ </p>
+ <input type="checkbox" name="shareapi_allow_resharing" id="allowResharing" class="checkbox"
+ value="1" <?php if ($_['allowResharing'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="allowResharing"><?php p($l->t('Allow resharing'));?></label><br/>
- </p>
- <p class="<?php if ($_['shareAPIEnabled'] === 'no') {
+ <label for="allowResharing"><?php p($l->t('Allow resharing'));?></label><br/>
+ </p>
+ <p class="<?php if ($_['shareAPIEnabled'] === 'no') {
p('hidden');
}?>">
- <input type="checkbox" name="shareapi_allow_group_sharing" id="allowGroupSharing" class="checkbox"
- value="1" <?php if ($_['allowGroupSharing'] === 'yes') {
+ <input type="checkbox" name="shareapi_allow_group_sharing" id="allowGroupSharing" class="checkbox"
+ value="1" <?php if ($_['allowGroupSharing'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="allowGroupSharing"><?php p($l->t('Allow sharing with groups'));?></label><br />
- </p>
- <p class="<?php if ($_['shareAPIEnabled'] === 'no') {
+ <label for="allowGroupSharing"><?php p($l->t('Allow sharing with groups'));?></label><br />
+ </p>
+ <p class="<?php if ($_['shareAPIEnabled'] === 'no') {
p('hidden');
}?>">
- <input type="checkbox" name="shareapi_only_share_with_group_members" id="onlyShareWithGroupMembers" class="checkbox"
- value="1" <?php if ($_['onlyShareWithGroupMembers']) {
+ <input type="checkbox" name="shareapi_only_share_with_group_members" id="onlyShareWithGroupMembers" class="checkbox"
+ value="1" <?php if ($_['onlyShareWithGroupMembers']) {
print_unescaped('checked="checked"');
} ?> />
- <label for="onlyShareWithGroupMembers"><?php p($l->t('Restrict users to only share with users in their groups'));?></label><br/>
- </p>
- <p class="<?php if ($_['shareAPIEnabled'] === 'no') {
+ <label for="onlyShareWithGroupMembers"><?php p($l->t('Restrict users to only share with users in their groups'));?></label><br/>
+ </p>
+ <p class="<?php if ($_['shareAPIEnabled'] === 'no') {
p('hidden');
}?>">
- <input type="checkbox" name="shareapi_exclude_groups" id="shareapiExcludeGroups" class="checkbox"
- value="1" <?php if ($_['shareExcludeGroups']) {
+ <input type="checkbox" name="shareapi_exclude_groups" id="shareapiExcludeGroups" class="checkbox"
+ value="1" <?php if ($_['shareExcludeGroups']) {
print_unescaped('checked="checked"');
} ?> />
- <label for="shareapiExcludeGroups"><?php p($l->t('Exclude groups from sharing'));?></label><br/>
- </p>
- <p id="selectExcludedGroups" class="indent <?php if (!$_['shareExcludeGroups'] || $_['shareAPIEnabled'] === 'no') {
+ <label for="shareapiExcludeGroups"><?php p($l->t('Exclude groups from sharing'));?></label><br/>
+ </p>
+ <p id="selectExcludedGroups" class="indent <?php if (!$_['shareExcludeGroups'] || $_['shareAPIEnabled'] === 'no') {
p('hidden');
} ?>">
- <input name="shareapi_exclude_groups_list" type="hidden" id="excludedGroups" value="<?php p($_['shareExcludedGroupsList']) ?>" style="width: 400px" class="noJSAutoUpdate"/>
- <br />
- <em><?php p($l->t('These groups will still be able to receive shares, but not to initiate them.')); ?></em>
- </p>
+ <input name="shareapi_exclude_groups_list" type="hidden" id="excludedGroups" value="<?php p($_['shareExcludedGroupsList']) ?>" style="width: 400px" class="noJSAutoUpdate"/>
+ <br />
+ <em><?php p($l->t('These groups will still be able to receive shares, but not to initiate them.')); ?></em>
+ </p>
- <p class="<?php if ($_['shareAPIEnabled'] === 'no') {
+ <p class="<?php if ($_['shareAPIEnabled'] === 'no') {
p('hidden');
}?>">
- <input type="checkbox" name="shareapi_allow_share_dialog_user_enumeration" value="1" id="shareapi_allow_share_dialog_user_enumeration" class="checkbox"
- <?php if ($_['allowShareDialogUserEnumeration'] === 'yes') {
+ <input type="checkbox" name="shareapi_allow_share_dialog_user_enumeration" value="1" id="shareapi_allow_share_dialog_user_enumeration" class="checkbox"
+ <?php if ($_['allowShareDialogUserEnumeration'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="shareapi_allow_share_dialog_user_enumeration"><?php p($l->t('Allow username autocompletion in share dialog'));?></label><br />
- </p>
+ <label for="shareapi_allow_share_dialog_user_enumeration"><?php p($l->t('Allow username autocompletion in share dialog'));?></label><br />
+ </p>
- <p id="shareapi_restrict_user_enumeration_to_group_setting" class="indent <?php if ($_['shareAPIEnabled'] === 'no' || $_['allowShareDialogUserEnumeration'] === 'no') {
+ <p id="shareapi_restrict_user_enumeration_to_group_setting" class="indent <?php if ($_['shareAPIEnabled'] === 'no' || $_['allowShareDialogUserEnumeration'] === 'no') {
p('hidden');
}?>">
- <input type="checkbox" name="shareapi_restrict_user_enumeration_to_group" value="1" id="shareapi_restrict_user_enumeration_to_group" class="checkbox"
- <?php if ($_['restrictUserEnumerationToGroup'] === 'yes') {
+ <input type="checkbox" name="shareapi_restrict_user_enumeration_to_group" value="1" id="shareapi_restrict_user_enumeration_to_group" class="checkbox"
+ <?php if ($_['restrictUserEnumerationToGroup'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="shareapi_restrict_user_enumeration_to_group"><?php p($l->t('Allow username autocompletion to users within the same groups'));?></label><br />
- </p>
+ <label for="shareapi_restrict_user_enumeration_to_group"><?php p($l->t('Allow username autocompletion to users within the same groups'));?></label><br />
+ </p>
- <p id="shareapi_restrict_user_enumeration_to_phone_setting" class="indent <?php if ($_['shareAPIEnabled'] === 'no' || $_['allowShareDialogUserEnumeration'] === 'no') {
+ <p id="shareapi_restrict_user_enumeration_to_phone_setting" class="indent <?php if ($_['shareAPIEnabled'] === 'no' || $_['allowShareDialogUserEnumeration'] === 'no') {
p('hidden');
}?>">
- <input type="checkbox" name="shareapi_restrict_user_enumeration_to_phone" value="1" id="shareapi_restrict_user_enumeration_to_phone" class="checkbox"
- <?php if ($_['restrictUserEnumerationToPhone'] === 'yes') {
+ <input type="checkbox" name="shareapi_restrict_user_enumeration_to_phone" value="1" id="shareapi_restrict_user_enumeration_to_phone" class="checkbox"
+ <?php if ($_['restrictUserEnumerationToPhone'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="shareapi_restrict_user_enumeration_to_phone"><?php p($l->t('Allow username autocompletion to users based on phone number integration'));?></label><br />
- </p>
- <p id="shareapi_restrict_user_enumeration_combinewarning_setting" class="indent <?php if ($_['shareAPIEnabled'] === 'no' || $_['allowShareDialogUserEnumeration'] === 'no') {
+ <label for="shareapi_restrict_user_enumeration_to_phone"><?php p($l->t('Allow username autocompletion to users based on phone number integration'));?></label><br />
+ </p>
+ <p id="shareapi_restrict_user_enumeration_combinewarning_setting" class="indent <?php if ($_['shareAPIEnabled'] === 'no' || $_['allowShareDialogUserEnumeration'] === 'no') {
p('hidden');
}?>">
- <em><?php p($l->t('If autocompletion "same group" and "phone number integration" are enabled a match in either is enough to show the user.'));?></em><br />
- </p>
- <p id="shareapi_restrict_user_enumeration_full_match_setting" class="indent <?php if ($_['shareAPIEnabled'] === 'no') {
+ <em><?php p($l->t('If autocompletion "same group" and "phone number integration" are enabled a match in either is enough to show the user.'));?></em><br />
+ </p>
+ <p id="shareapi_restrict_user_enumeration_full_match_setting" class="indent <?php if ($_['shareAPIEnabled'] === 'no') {
p('hidden');
}?>">
- <input type="checkbox" name="shareapi_restrict_user_enumeration_full_match" value="1" id="shareapi_restrict_user_enumeration_full_match" class="checkbox"
- <?php if ($_['restrictUserEnumerationFullMatch'] === 'yes') {
+ <input type="checkbox" name="shareapi_restrict_user_enumeration_full_match" value="1" id="shareapi_restrict_user_enumeration_full_match" class="checkbox"
+ <?php if ($_['restrictUserEnumerationFullMatch'] === 'yes') {
print_unescaped('checked="checked"');
} ?> />
- <label for="shareapi_restrict_user_enumeration_full_match"><?php p($l->t('Allow username autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)'));?></label><br />
- </p>
+ <label for="shareapi_restrict_user_enumeration_full_match"><?php p($l->t('Allow username autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)'));?></label><br />
+ </p>
- <p>
- <input type="checkbox" id="publicShareDisclaimer" class="checkbox noJSAutoUpdate"
- <?php if ($_['publicShareDisclaimerText'] !== null) {
+ <p>
+ <input type="checkbox" id="publicShareDisclaimer" class="checkbox noJSAutoUpdate"
+ <?php if ($_['publicShareDisclaimerText'] !== null) {
print_unescaped('checked="checked"');
} ?> />
- <label for="publicShareDisclaimer"><?php p($l->t('Show disclaimer text on the public link upload page (only shown when the file list is hidden)'));?></label>
- <span id="publicShareDisclaimerStatus" class="msg" style="display:none"></span>
- <br/>
- <textarea placeholder="<?php p($l->t('This text will be shown on the public link upload page when the file list is hidden.')) ?>" id="publicShareDisclaimerText" <?php if ($_['publicShareDisclaimerText'] === null) {
+ <label for="publicShareDisclaimer"><?php p($l->t('Show disclaimer text on the public link upload page (only shown when the file list is hidden)'));?></label>
+ <span id="publicShareDisclaimerStatus" class="msg" style="display:none"></span>
+ <br/>
+ <textarea placeholder="<?php p($l->t('This text will be shown on the public link upload page when the file list is hidden.')) ?>" id="publicShareDisclaimerText" <?php if ($_['publicShareDisclaimerText'] === null) {
print_unescaped('class="hidden"');
} ?>><?php p($_['publicShareDisclaimerText']) ?></textarea>
- </p>
+ </p>
- <h3><?php p($l->t('Default share permissions'));?></h3>
- <input type="hidden" name="shareapi_default_permissions" id="shareApiDefaultPermissions" class="checkbox"
- value="<?php p($_['shareApiDefaultPermissions']) ?>" />
- <p id="shareApiDefaultPermissionsSection" class="indent <?php if ($_['shareAPIEnabled'] === 'no') {
+ <h3><?php p($l->t('Default share permissions'));?></h3>
+ <input type="hidden" name="shareapi_default_permissions" id="shareApiDefaultPermissions" class="checkbox"
+ value="<?php p($_['shareApiDefaultPermissions']) ?>" />
+ <p id="shareApiDefaultPermissionsSection" class="indent <?php if ($_['shareAPIEnabled'] === 'no') {
p('hidden');
} ?>">
- <?php foreach ($_['shareApiDefaultPermissionsCheckboxes'] as $perm): ?>
- <input type="checkbox" name="shareapi_default_permission_<?php p($perm['id']) ?>" id="shareapi_default_permission_<?php p($perm['id']) ?>"
- class="noautosave checkbox" value="<?php p($perm['value']) ?>" <?php if (($_['shareApiDefaultPermissions'] & $perm['value']) !== 0) {
+ <?php foreach ($_['shareApiDefaultPermissionsCheckboxes'] as $perm): ?>
+ <input type="checkbox" name="shareapi_default_permission_<?php p($perm['id']) ?>" id="shareapi_default_permission_<?php p($perm['id']) ?>"
+ class="noautosave checkbox" value="<?php p($perm['value']) ?>" <?php if (($_['shareApiDefaultPermissions'] & $perm['value']) !== 0) {
print_unescaped('checked="checked"');
} ?> />
- <label for="shareapi_default_permission_<?php p($perm['id']) ?>"><?php p($perm['label']);?></label>
- <?php endforeach ?>
- </p>
+ <label for="shareapi_default_permission_<?php p($perm['id']) ?>"><?php p($perm['label']);?></label>
+ <?php endforeach ?>
+ </p>
+ </div>
+ <?php } ?>
</div>
diff --git a/apps/settings/tests/Settings/Admin/SharingTest.php b/apps/settings/tests/Settings/Admin/SharingTest.php
index ff25c717498..c90429f6dd8 100644
--- a/apps/settings/tests/Settings/Admin/SharingTest.php
+++ b/apps/settings/tests/Settings/Admin/SharingTest.php
@@ -32,11 +32,13 @@
namespace OCA\Settings\Tests\Settings\Admin;
use OCA\Settings\Settings\Admin\Sharing;
+use OCP\App\IAppManager;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\Constants;
use OCP\IConfig;
use OCP\IL10N;
use OCP\Share\IManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class SharingTest extends TestCase {
@@ -44,10 +46,12 @@ class SharingTest extends TestCase {
private $admin;
/** @var IConfig */
private $config;
- /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject */
+ /** @var IL10N|MockObject */
private $l10n;
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
+ /** @var IManager|MockObject */
private $shareManager;
+ /** @var IAppManager|MockObject */
+ private $appManager;
protected function setUp(): void {
parent::setUp();
@@ -55,15 +59,17 @@ class SharingTest extends TestCase {
$this->l10n = $this->getMockBuilder(IL10N::class)->getMock();
$this->shareManager = $this->getMockBuilder(IManager::class)->getMock();
+ $this->appManager = $this->getMockBuilder(IAppManager::class)->getMock();
$this->admin = new Sharing(
$this->config,
$this->l10n,
- $this->shareManager
+ $this->shareManager,
+ $this->appManager
);
}
- public function testGetFormWithoutExcludedGroups() {
+ public function testGetFormWithoutExcludedGroups(): void {
$this->config
->method('getAppValue')
->willReturnMap([
@@ -94,10 +100,13 @@ class SharingTest extends TestCase {
$this->shareManager->method('shareWithGroupMembersOnly')
->willReturn(false);
+ $this->appManager->method('isEnabledForUser')->with('files_sharing')->willReturn(false);
+
$expected = new TemplateResponse(
'settings',
'settings/admin/sharing',
[
+ 'sharingAppEnabled' => false,
'allowGroupSharing' => 'yes',
'allowLinks' => 'yes',
'allowPublicUpload' => 'yes',
@@ -117,7 +126,7 @@ class SharingTest extends TestCase {
'publicShareDisclaimerText' => 'Lorem ipsum',
'enableLinkPasswordByDefault' => 'yes',
'shareApiDefaultPermissions' => Constants::PERMISSION_ALL,
- 'shareApiDefaultPermissionsCheckboxes' => $this->invokePrivate($this->admin, 'getSharePermissionList', []),
+ 'shareApiDefaultPermissionsCheckboxes' => self::invokePrivate($this->admin, 'getSharePermissionList', []),
'shareDefaultInternalExpireDateSet' => 'no',
'shareInternalExpireAfterNDays' => '7',
'shareInternalEnforceExpireDate' => 'no',
@@ -132,7 +141,7 @@ class SharingTest extends TestCase {
$this->assertEquals($expected, $this->admin->getForm());
}
- public function testGetFormWithExcludedGroups() {
+ public function testGetFormWithExcludedGroups(): void {
$this->config
->method('getAppValue')
->willReturnMap([
@@ -163,10 +172,13 @@ class SharingTest extends TestCase {
$this->shareManager->method('shareWithGroupMembersOnly')
->willReturn(false);
+ $this->appManager->method('isEnabledForUser')->with('files_sharing')->willReturn(true);
+
$expected = new TemplateResponse(
'settings',
'settings/admin/sharing',
[
+ 'sharingAppEnabled' => true,
'allowGroupSharing' => 'yes',
'allowLinks' => 'yes',
'allowPublicUpload' => 'yes',
@@ -186,7 +198,7 @@ class SharingTest extends TestCase {
'publicShareDisclaimerText' => 'Lorem ipsum',
'enableLinkPasswordByDefault' => 'yes',
'shareApiDefaultPermissions' => Constants::PERMISSION_ALL,
- 'shareApiDefaultPermissionsCheckboxes' => $this->invokePrivate($this->admin, 'getSharePermissionList', []),
+ 'shareApiDefaultPermissionsCheckboxes' => self::invokePrivate($this->admin, 'getSharePermissionList', []),
'shareDefaultInternalExpireDateSet' => 'no',
'shareInternalExpireAfterNDays' => '7',
'shareInternalEnforceExpireDate' => 'no',
@@ -201,11 +213,11 @@ class SharingTest extends TestCase {
$this->assertEquals($expected, $this->admin->getForm());
}
- public function testGetSection() {
+ public function testGetSection(): void {
$this->assertSame('sharing', $this->admin->getSection());
}
- public function testGetPriority() {
+ public function testGetPriority(): void {
$this->assertSame(0, $this->admin->getPriority());
}
}