summaryrefslogtreecommitdiffstats
path: root/apps/settings
diff options
context:
space:
mode:
authorVincent Petry <vincent@nextcloud.com>2021-03-22 12:08:53 +0100
committerVincent Petry <vincent@nextcloud.com>2021-03-26 13:07:05 +0100
commitb81a1c1bdbf7c7ca3e71a7c7cd7eb21edd0a3fb9 (patch)
treef323c594c53cd5699c4a21ecb247f73e6662bc20 /apps/settings
parenta75f0e62fa0b9e140ba0dd8ffb2e928a5d3007dd (diff)
downloadnextcloud-server-b81a1c1bdbf7c7ca3e71a7c7cd7eb21edd0a3fb9.tar.gz
nextcloud-server-b81a1c1bdbf7c7ca3e71a7c7cd7eb21edd0a3fb9.zip
Add new v2-private account scope
Added new v2-private account manager scope that restricts the scope further by excluding public link access. Avatars with v2-private account scope are now showing the guest avatar instead of the real avatar. Signed-off-by: Vincent Petry <vincent@nextcloud.com>
Diffstat (limited to 'apps/settings')
-rw-r--r--apps/settings/js/federationscopemenu.js28
-rw-r--r--apps/settings/js/federationsettingsview.js20
2 files changed, 42 insertions, 6 deletions
diff --git a/apps/settings/js/federationscopemenu.js b/apps/settings/js/federationscopemenu.js
index 170aec15a85..1c854a7ee57 100644
--- a/apps/settings/js/federationscopemenu.js
+++ b/apps/settings/js/federationscopemenu.js
@@ -15,6 +15,8 @@
* Construct a new FederationScopeMenu instance
* @constructs FederationScopeMenu
* @memberof OC.Settings
+ * @param {object} options
+ * @param {array.<string>} [options.excludedScopes] array of excluded scopes
*/
var FederationScopeMenu = OC.Backbone.View.extend({
tagName: 'div',
@@ -26,8 +28,15 @@
this.field = options.field;
this._scopes = [
{
- name: 'private',
+ name: 'v2-private',
displayName: t('settings', 'Private'),
+ tooltip: t('settings', "Don't show via public link"),
+ iconClass: 'icon-password',
+ active: false
+ },
+ {
+ name: 'private',
+ displayName: t('settings', 'Local'),
tooltip: t('settings', "Don't synchronize to servers"),
iconClass: 'icon-password',
active: false
@@ -41,12 +50,18 @@
},
{
name: 'public',
- displayName: t('settings', 'Public'),
+ displayName: t('settings', 'Published'),
tooltip: t('settings', 'Synchronize to trusted servers and the global and public address book'),
iconClass: 'icon-link',
active: false
}
];
+
+ if (options.excludedScopes) {
+ this._scopes = this._scopes.filter(function(scopeEntry) {
+ return options.excludedScopes.indexOf(scopeEntry.name) === -1;
+ })
+ }
},
/**
@@ -106,15 +121,18 @@
}
switch (currentlyActiveValue) {
- case 'private':
+ case 'v2-private':
this._scopes[0].active = true;
break;
- case 'contacts':
+ case 'private':
this._scopes[1].active = true;
break;
- case 'public':
+ case 'contacts':
this._scopes[2].active = true;
break;
+ case 'public':
+ this._scopes[3].active = true;
+ break;
}
this.render();
diff --git a/apps/settings/js/federationsettingsview.js b/apps/settings/js/federationsettingsview.js
index 9cefaf132f2..293989baa0c 100644
--- a/apps/settings/js/federationsettingsview.js
+++ b/apps/settings/js/federationsettingsview.js
@@ -61,9 +61,26 @@
render: function() {
var self = this;
+ var fieldsWithV2Private = [
+ 'avatar',
+ 'phone',
+ 'twitter',
+ 'website',
+ 'address',
+ ];
+
_.each(this._inputFields, function(field) {
var $icon = self.$('#' + field + 'form h3 > .federation-menu');
- var scopeMenu = new OC.Settings.FederationScopeMenu({field: field});
+ var excludedScopes = null
+
+ if (fieldsWithV2Private.indexOf(field) === -1) {
+ excludedScopes = ['v2-private']
+ }
+
+ var scopeMenu = new OC.Settings.FederationScopeMenu({
+ field: field,
+ excludedScopes: excludedScopes,
+ });
self.listenTo(scopeMenu, 'select:scope', function(scope) {
self._onScopeChanged(field, scope);
@@ -208,6 +225,7 @@
switch (scope) {
case 'private':
+ case 'v2-private':
$icon.addClass('icon-password');
$icon.removeClass('hidden');
break;