mirror of
https://github.com/nextcloud/server.git
synced 2026-06-08 00:02:54 -04:00
Merge pull request #29393 from nextcloud/backport/26725/stable22
[stable22] Fix federated scope not shown when public addressbook upload is disabled
This commit is contained in:
commit
eb79cb6861
7 changed files with 38 additions and 17 deletions
|
|
@ -41,20 +41,23 @@ class Capabilities implements ICapability {
|
|||
* @return array Array containing the apps capabilities
|
||||
*/
|
||||
public function getCapabilities() {
|
||||
$federationScopesEnabled = false;
|
||||
$federatedScopeEnabled = $this->appManager->isEnabledForUser('federation');
|
||||
|
||||
$publishedScopeEnabled = false;
|
||||
|
||||
$federatedFileSharingEnabled = $this->appManager->isEnabledForUser('federatedfilesharing');
|
||||
if ($federatedFileSharingEnabled) {
|
||||
/** @var FederatedShareProvider $shareProvider */
|
||||
$shareProvider = \OC::$server->query(FederatedShareProvider::class);
|
||||
$federationScopesEnabled = $shareProvider->isLookupServerUploadEnabled();
|
||||
$publishedScopeEnabled = $shareProvider->isLookupServerUploadEnabled();
|
||||
}
|
||||
|
||||
return [
|
||||
'provisioning_api' => [
|
||||
'version' => $this->appManager->getAppVersion('provisioning_api'),
|
||||
'AccountPropertyScopesVersion' => 2,
|
||||
'AccountPropertyScopesFederationEnabled' => $federationScopesEnabled,
|
||||
'AccountPropertyScopesFederatedEnabled' => $federatedScopeEnabled,
|
||||
'AccountPropertyScopesPublishedEnabled' => $publishedScopeEnabled,
|
||||
]
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,20 +57,25 @@ class CapabilitiesTest extends TestCase {
|
|||
|
||||
public function getCapabilitiesProvider() {
|
||||
return [
|
||||
[false, false, false],
|
||||
[true, false, false],
|
||||
[true, true, true],
|
||||
[true, false, false, true, false],
|
||||
[true, true, false, true, false],
|
||||
[true, true, true, true, true],
|
||||
[false, false, false, false, false],
|
||||
[false, true, false, false, false],
|
||||
[false, true, true, false, true],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider getCapabilitiesProvider
|
||||
*/
|
||||
public function testGetCapabilities($federationAppEnabled, $lookupServerEnabled, $expectedFederationScopesEnabled) {
|
||||
$this->appManager->expects($this->once())
|
||||
->method('isEnabledForUser')
|
||||
->with('federatedfilesharing')
|
||||
->willReturn($federationAppEnabled);
|
||||
public function testGetCapabilities($federationAppEnabled, $federatedFileSharingAppEnabled, $lookupServerEnabled, $expectedFederatedScopeEnabled, $expectedPublishedScopeEnabled) {
|
||||
$this->appManager->expects($this->any())
|
||||
->method('isEnabledForUser')
|
||||
->will($this->returnValueMap([
|
||||
['federation', null, $federationAppEnabled],
|
||||
['federatedfilesharing', null, $federatedFileSharingAppEnabled],
|
||||
]));
|
||||
|
||||
$federatedShareProvider = $this->createMock(FederatedShareProvider::class);
|
||||
$this->overwriteService(FederatedShareProvider::class, $federatedShareProvider);
|
||||
|
|
@ -83,7 +88,8 @@ class CapabilitiesTest extends TestCase {
|
|||
'provisioning_api' => [
|
||||
'version' => '1.12',
|
||||
'AccountPropertyScopesVersion' => 2,
|
||||
'AccountPropertyScopesFederationEnabled' => $expectedFederationScopesEnabled,
|
||||
'AccountPropertyScopesFederatedEnabled' => $expectedFederatedScopeEnabled,
|
||||
'AccountPropertyScopesPublishedEnabled' => $expectedPublishedScopeEnabled,
|
||||
],
|
||||
];
|
||||
$this->assertSame($expected, $this->capabilities->getCapabilities());
|
||||
|
|
|
|||
|
|
@ -15,7 +15,10 @@
|
|||
* @constructs FederationScopeMenu
|
||||
* @memberof OC.Settings
|
||||
* @param {object} options
|
||||
* @param {bool} [options.lookupServerUploadEnabled=false] whether uploading to the lookup server is enabled
|
||||
* @param {bool} [options.showFederatedScope=false] whether show the
|
||||
* "v2-federated" scope or not
|
||||
* @param {bool} [options.showPublishedScope=false] whether show the
|
||||
* "v2-published" scope or not
|
||||
*/
|
||||
var FederationSettingsView = OC.Backbone.View.extend({
|
||||
_inputFields: undefined,
|
||||
|
|
@ -31,7 +34,8 @@
|
|||
} else {
|
||||
this._config = new OC.Settings.UserSettings();
|
||||
}
|
||||
this.showFederationScopes = !!options.showFederationScopes;
|
||||
this.showFederatedScope = !!options.showFederatedScope;
|
||||
this.showPublishedScope = !!options.showPublishedScope;
|
||||
|
||||
this._inputFields = [
|
||||
'displayname',
|
||||
|
|
@ -85,8 +89,11 @@
|
|||
excludedScopes.push('v2-private');
|
||||
}
|
||||
|
||||
if (!self.showFederationScopes) {
|
||||
if (!self.showFederatedScope) {
|
||||
excludedScopes.push('v2-federated');
|
||||
}
|
||||
|
||||
if (!self.showPublishedScope) {
|
||||
excludedScopes.push('v2-published');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -204,7 +204,8 @@ window.addEventListener('DOMContentLoaded', function () {
|
|||
var federationSettingsView = new OC.Settings.FederationSettingsView({
|
||||
el: settingsEl,
|
||||
config: userSettings,
|
||||
showFederationScopes: !!settingsEl.data('lookup-server-upload-enabled'),
|
||||
showFederatedScope: !!settingsEl.data('federation-enabled'),
|
||||
showPublishedScope: !!settingsEl.data('lookup-server-upload-enabled'),
|
||||
});
|
||||
|
||||
userSettings.on("sync", function() {
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ class PersonalInfo implements ISettings {
|
|||
}
|
||||
|
||||
public function getForm(): TemplateResponse {
|
||||
$federationEnabled = $this->appManager->isEnabledForUser('federation');
|
||||
$federatedFileSharingEnabled = $this->appManager->isEnabledForUser('federatedfilesharing');
|
||||
$lookupServerUploadEnabled = false;
|
||||
if ($federatedFileSharingEnabled) {
|
||||
|
|
@ -124,6 +125,7 @@ class PersonalInfo implements ISettings {
|
|||
'usage_relative' => round($storageInfo['relative']),
|
||||
'quota' => $storageInfo['quota'],
|
||||
'avatarChangeSupported' => $user->canChangeAvatar(),
|
||||
'federationEnabled' => $federationEnabled,
|
||||
'lookupServerUploadEnabled' => $lookupServerUploadEnabled,
|
||||
'avatarScope' => $account->getProperty(IAccountManager::PROPERTY_AVATAR)->getScope(),
|
||||
'displayNameChangeSupported' => $user->canChangeDisplayName(),
|
||||
|
|
|
|||
|
|
@ -35,7 +35,8 @@ script('settings', [
|
|||
]);
|
||||
?>
|
||||
|
||||
<div id="personal-settings" data-lookup-server-upload-enabled="<?php p($_['lookupServerUploadEnabled'] ? 'true' : 'false') ?>">
|
||||
<div id="personal-settings" data-federation-enabled="<?php p($_['federationEnabled'] ? 'true' : 'false') ?>"
|
||||
data-lookup-server-upload-enabled="<?php p($_['lookupServerUploadEnabled'] ? 'true' : 'false') ?>">
|
||||
<h2 class="hidden-visually"><?php p($l->t('Personal info')); ?></h2>
|
||||
<div id="personal-settings-avatar-container" class="personal-settings-container">
|
||||
<div>
|
||||
|
|
|
|||
|
|
@ -78,6 +78,7 @@ class AccountPropertyTest extends TestCase {
|
|||
// current values
|
||||
[IAccountManager::SCOPE_PRIVATE, IAccountManager::SCOPE_PRIVATE],
|
||||
[IAccountManager::SCOPE_LOCAL, IAccountManager::SCOPE_LOCAL],
|
||||
[IAccountManager::SCOPE_FEDERATED, IAccountManager::SCOPE_FEDERATED],
|
||||
[IAccountManager::SCOPE_PUBLISHED, IAccountManager::SCOPE_PUBLISHED],
|
||||
// legacy values
|
||||
[IAccountManager::VISIBILITY_PRIVATE, IAccountManager::SCOPE_LOCAL],
|
||||
|
|
|
|||
Loading…
Reference in a new issue