summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2016-11-02 22:36:05 +0100
committerGitHub <noreply@github.com>2016-11-02 22:36:05 +0100
commit39573e602d5e38e4b71b3d197d08798dd9558659 (patch)
tree1a4045bda8e05ad3537a9bf974834e1731a1e2cd
parent178d7f5bfa49bcf54d85ce788268ba592608627a (diff)
parent7d17b42f4df2322c1078c99840a9d35415ffd7aa (diff)
downloadnextcloud-server-39573e602d5e38e4b71b3d197d08798dd9558659.tar.gz
nextcloud-server-39573e602d5e38e4b71b3d197d08798dd9558659.zip
Merge pull request #1978 from nextcloud/remove-send-mail-option
Remove send mail option
-rw-r--r--apps/files/lib/Controller/ViewController.php2
-rw-r--r--apps/files/templates/index.php2
-rw-r--r--apps/files/tests/Controller/ViewControllerTest.php2
-rw-r--r--apps/files_sharing/appinfo/info.xml2
-rw-r--r--apps/files_sharing/appinfo/update.php6
-rw-r--r--apps/files_sharing/lib/Capabilities.php4
-rw-r--r--apps/files_sharing/lib/Migration.php15
-rw-r--r--apps/files_sharing/tests/CapabilitiesTest.php18
-rw-r--r--apps/files_sharing/tests/MigrationTest.php28
-rw-r--r--core/js/core.json1
-rw-r--r--core/js/shareconfigmodel.js14
-rw-r--r--core/js/sharedialoglinkshareview.js1
-rw-r--r--core/js/sharedialogmailview.js178
-rw-r--r--core/js/sharedialogshareelistview.js2
-rw-r--r--core/js/sharedialogview.js10
-rw-r--r--core/js/shareitemmodel.js43
-rw-r--r--core/js/tests/specs/sharedialogshareelistview.js2
-rw-r--r--core/js/tests/specs/sharedialogviewSpec.js72
-rw-r--r--core/js/tests/specs/shareitemmodelSpec.js104
-rw-r--r--lib/private/Settings/Admin/Sharing.php2
-rw-r--r--settings/templates/admin/sharing.php5
-rw-r--r--tests/lib/Settings/Admin/SharingTest.php56
22 files changed, 69 insertions, 500 deletions
diff --git a/apps/files/lib/Controller/ViewController.php b/apps/files/lib/Controller/ViewController.php
index d3708915273..6f74fec861f 100644
--- a/apps/files/lib/Controller/ViewController.php
+++ b/apps/files/lib/Controller/ViewController.php
@@ -235,8 +235,6 @@ class ViewController extends Controller {
$params['owner'] = $storageInfo['owner'];
$params['ownerDisplayName'] = $storageInfo['ownerDisplayName'];
$params['isPublic'] = false;
- $params['mailNotificationEnabled'] = $this->config->getAppValue('core', 'shareapi_allow_mail_notification', 'no');
- $params['mailPublicNotificationEnabled'] = $this->config->getAppValue('core', 'shareapi_allow_public_notification', 'no');
$params['allowShareWithLink'] = $this->config->getAppValue('core', 'shareapi_allow_links', 'yes');
$user = $this->userSession->getUser()->getUID();
$params['defaultFileSorting'] = $this->config->getUserValue($user, 'files', 'file_sorting', 'name');
diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php
index 17958d330b7..1670ccfd138 100644
--- a/apps/files/templates/index.php
+++ b/apps/files/templates/index.php
@@ -16,8 +16,6 @@
<input type="hidden" name="ownerDisplayName" id="ownerDisplayName" value="<?php p($_['ownerDisplayName']); ?>" />
<input type="hidden" name="fileNotFound" id="fileNotFound" value="<?php p($_['fileNotFound']); ?>" />
<?php if (!$_['isPublic']) :?>
-<input type="hidden" name="mailNotificationEnabled" id="mailNotificationEnabled" value="<?php p($_['mailNotificationEnabled']) ?>" />
-<input type="hidden" name="mailPublicNotificationEnabled" id="mailPublicNotificationEnabled" value="<?php p($_['mailPublicNotificationEnabled']) ?>" />
<input type="hidden" name="allowShareWithLink" id="allowShareWithLink" value="<?php p($_['allowShareWithLink']) ?>" />
<input type="hidden" name="defaultFileSorting" id="defaultFileSorting" value="<?php p($_['defaultFileSorting']) ?>" />
<input type="hidden" name="defaultFileSortingDirection" id="defaultFileSortingDirection" value="<?php p($_['defaultFileSortingDirection']) ?>" />
diff --git a/apps/files/tests/Controller/ViewControllerTest.php b/apps/files/tests/Controller/ViewControllerTest.php
index 179aaa373b3..25445567ea9 100644
--- a/apps/files/tests/Controller/ViewControllerTest.php
+++ b/apps/files/tests/Controller/ViewControllerTest.php
@@ -218,8 +218,6 @@ class ViewControllerTest extends TestCase {
'defaultFileSortingDirection' => 'asc',
'showHiddenFiles' => 0,
'fileNotFound' => 0,
- 'mailNotificationEnabled' => 'no',
- 'mailPublicNotificationEnabled' => 'no',
'allowShareWithLink' => 'yes',
'appNavigation' => $nav,
'appContents' => [
diff --git a/apps/files_sharing/appinfo/info.xml b/apps/files_sharing/appinfo/info.xml
index 133119feabd..cc97f65a5e6 100644
--- a/apps/files_sharing/appinfo/info.xml
+++ b/apps/files_sharing/appinfo/info.xml
@@ -10,7 +10,7 @@ Turning the feature off removes shared files and folders on the server for all s
<licence>AGPL</licence>
<author>Michael Gapczynski, Bjoern Schiessle</author>
<default_enable/>
- <version>1.1.0</version>
+ <version>1.1.1</version>
<types>
<filesystem/>
</types>
diff --git a/apps/files_sharing/appinfo/update.php b/apps/files_sharing/appinfo/update.php
index d53d878881e..ed0d7732b37 100644
--- a/apps/files_sharing/appinfo/update.php
+++ b/apps/files_sharing/appinfo/update.php
@@ -26,7 +26,11 @@ $installedVersion = \OC::$server->getConfig()->getAppValue('files_sharing', 'ins
// Migration OC8.2 -> OC9
if (version_compare($installedVersion, '0.9.1', '<')) {
- $m = new Migration(\OC::$server->getDatabaseConnection());
+ $m = new Migration(\OC::$server->getDatabaseConnection(), \OC::$server->getConfig());
$m->removeReShares();
$m->updateInitiatorInfo();
}
+
+if (version_compare($installedVersion, '1.1.1', '<')) {
+ $m = new Migration(\OC::$server->getDatabaseConnection(), \OC::$server->getConfig());
+}
diff --git a/apps/files_sharing/lib/Capabilities.php b/apps/files_sharing/lib/Capabilities.php
index 9da6dbbc995..bfbd15c1122 100644
--- a/apps/files_sharing/lib/Capabilities.php
+++ b/apps/files_sharing/lib/Capabilities.php
@@ -73,10 +73,10 @@ class Capabilities implements ICapability {
}
$res["public"] = $public;
- $res['user']['send_mail'] = $this->config->getAppValue('core', 'shareapi_allow_mail_notification', 'no') === 'yes';
-
$res['resharing'] = $this->config->getAppValue('core', 'shareapi_allow_resharing', 'yes') === 'yes';
+ $res['user']['send_mail'] = false;
+
$res['group_sharing'] = $this->config->getAppValue('core', 'shareapi_allow_group_sharing', 'yes') === 'yes';
}
diff --git a/apps/files_sharing/lib/Migration.php b/apps/files_sharing/lib/Migration.php
index 9c971bf7f49..605a11fd22c 100644
--- a/apps/files_sharing/lib/Migration.php
+++ b/apps/files_sharing/lib/Migration.php
@@ -27,6 +27,7 @@ namespace OCA\Files_Sharing;
use Doctrine\DBAL\Connection;
use OCP\ICache;
+use OCP\IConfig;
use OCP\IDBConnection;
use OC\Cache\CappedMemoryCache;
@@ -41,14 +42,18 @@ class Migration {
/** @var IDBConnection */
private $connection;
+ /** @var IConfig */
+ private $config;
+
/** @var ICache with all shares we already saw */
private $shareCache;
/** @var string */
private $table = 'share';
- public function __construct(IDBConnection $connection) {
+ public function __construct(IDBConnection $connection, IConfig $config) {
$this->connection = $connection;
+ $this->config = $config;
// We cache up to 10k share items (~20MB)
$this->shareCache = new CappedMemoryCache(10000);
@@ -111,6 +116,14 @@ class Migration {
}
/**
+ * this was dropped for Nextcloud 11 in favour of share by mail
+ */
+ public function removeSendMailOption() {
+ $this->config->deleteAppValue('core', 'shareapi_allow_mail_notification');
+ $this->config->deleteAppValue('core', 'shareapi_allow_public_notification');
+ }
+
+ /**
* find the owner of a re-shared file/folder
*
* @param array $share
diff --git a/apps/files_sharing/tests/CapabilitiesTest.php b/apps/files_sharing/tests/CapabilitiesTest.php
index 254f7cdaa7c..3d59b1f6f34 100644
--- a/apps/files_sharing/tests/CapabilitiesTest.php
+++ b/apps/files_sharing/tests/CapabilitiesTest.php
@@ -188,24 +188,6 @@ class CapabilitiesTest extends \Test\TestCase {
$this->assertFalse($result['public']['send_mail']);
}
- public function testUserSendMail() {
- $map = [
- ['core', 'shareapi_enabled', 'yes', 'yes'],
- ['core', 'shareapi_allow_mail_notification', 'no', 'yes'],
- ];
- $result = $this->getResults($map);
- $this->assertTrue($result['user']['send_mail']);
- }
-
- public function testUserNoSendMail() {
- $map = [
- ['core', 'shareapi_enabled', 'yes', 'yes'],
- ['core', 'shareapi_allow_mail_notification', 'no', 'no'],
- ];
- $result = $this->getResults($map);
- $this->assertFalse($result['user']['send_mail']);
- }
-
public function testResharing() {
$map = [
['core', 'shareapi_enabled', 'yes', 'yes'],
diff --git a/apps/files_sharing/tests/MigrationTest.php b/apps/files_sharing/tests/MigrationTest.php
index 7d6ca7840ed..572f64da743 100644
--- a/apps/files_sharing/tests/MigrationTest.php
+++ b/apps/files_sharing/tests/MigrationTest.php
@@ -39,6 +39,9 @@ class MigrationTest extends TestCase {
/** @var \OCP\IDBConnection */
private $connection;
+ /** @var \OCP\IConfig */
+ private $config;
+
/** @var Migration */
private $migration;
@@ -48,7 +51,8 @@ class MigrationTest extends TestCase {
parent::setUp();
$this->connection = \OC::$server->getDatabaseConnection();
- $this->migration = new Migration($this->connection);
+ $this->config = \OC::$server->getConfig();
+ $this->migration = new Migration($this->connection, $this->config);
$this->cleanDB();
}
@@ -351,4 +355,26 @@ class MigrationTest extends TestCase {
$stmt->closeCursor();
$this->assertEquals(1001, $i);
}
+
+ /**
+ * test that we really remove the "shareapi_allow_mail_notification" setting only
+ */
+ public function testRemoveSendMailOption() {
+ $this->config->setAppValue('core', 'shareapi_setting1', 'dummy-value');
+ $this->config->setAppValue('core', 'shareapi_allow_mail_notification', 'no');
+ $this->config->setAppValue('core', 'shareapi_allow_public_notification', 'no');
+
+ $this->migration->removeSendMailOption();
+
+ $this->assertNull(
+ $this->config->getAppValue('core', 'shareapi_allow_mail_notification', null)
+ );
+ $this->assertNull(
+ $this->config->getAppValue('core', 'shareapi_allow_public_notification', null)
+ );
+
+ $this->assertSame('dummy-value',
+ $this->config->getAppValue('core', 'shareapi_setting1', null)
+ );
+ }
}
diff --git a/core/js/core.json b/core/js/core.json
index 7e72234aaa4..d589208c828 100644
--- a/core/js/core.json
+++ b/core/js/core.json
@@ -33,7 +33,6 @@
"sharedialogview.js",
"sharedialogexpirationview.js",
"sharedialoglinkshareview.js",
- "sharedialogmailview.js",
"sharedialogresharerinfoview.js",
"sharedialogshareelistview.js",
"octemplate.js",
diff --git a/core/js/shareconfigmodel.js b/core/js/shareconfigmodel.js
index 24922d62636..7c92853f682 100644
--- a/core/js/shareconfigmodel.js
+++ b/core/js/shareconfigmodel.js
@@ -49,20 +49,6 @@
/**
* @returns {boolean}
*/
- isMailPublicNotificationEnabled: function() {
- return $('input:hidden[name=mailPublicNotificationEnabled]').val() === 'yes';
- },
-
- /**
- * @returns {boolean}
- */
- isMailNotificationEnabled: function() {
- return $('input:hidden[name=mailNotificationEnabled]').val() === 'yes';
- },
-
- /**
- * @returns {boolean}
- */
isShareWithLinkAllowed: function() {
return $('#allowShareWithLink').val() === 'yes';
},
diff --git a/core/js/sharedialoglinkshareview.js b/core/js/sharedialoglinkshareview.js
index 1d6a0f03d4d..bbc8f1b4547 100644
--- a/core/js/sharedialoglinkshareview.js
+++ b/core/js/sharedialoglinkshareview.js
@@ -332,7 +332,6 @@
hideFileListChecked: hideFileListChecked,
publicUploadLabel: t('core', 'Allow upload and editing'),
hideFileListLabel: t('core', 'Hide file listing'),
- mailPublicNotificationEnabled: isLinkShare && this.configModel.isMailPublicNotificationEnabled(),
mailPrivatePlaceholder: t('core', 'Email link to person'),
mailButtonText: t('core', 'Send')
}));
diff --git a/core/js/sharedialogmailview.js b/core/js/sharedialogmailview.js
deleted file mode 100644
index ce0893cb25c..00000000000
--- a/core/js/sharedialogmailview.js
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright (c) 2016
- *
- * This file is licensed under the Affero General Public License version 3
- * or later.
- *
- * See the COPYING-README file.
- *
- */
-
-/* globals escapeHTML, Handlebars */
-
-(function() {
- if (!OC.Share) {
- OC.Share = {};
- }
-
- var TEMPLATE =
- '{{#if shareAllowed}}' +
- ' {{#if mailPublicNotificationEnabled}}' +
- '<form id="emailPrivateLink" class="emailPrivateLinkForm oneline">' +
- ' <input id="email" class="emailField" value="{{email}}" placeholder="{{mailPrivatePlaceholder}}" type="text" />' +
- ' <a id="emailButton" class="icon icon-mail hasTooltip" title="Send e-mail"></a>' +
- '</form>' +
- ' {{/if}}' +
- '{{/if}}'
- ;
-
- /**
- * @class OCA.Share.ShareDialogMailView
- * @member {OC.Share.ShareItemModel} model
- * @member {jQuery} $el
- * @memberof OCA.Sharing
- * @classdesc
- *
- * Represents the GUI of the share dialogue
- *
- */
- var ShareDialogMailView = OC.Backbone.View.extend({
- /** @type {string} **/
- id: 'shareDialogMailView',
-
- /** @type {OC.Share.ShareConfigModel} **/
- configModel: undefined,
-
- /** @type {Function} **/
- _template: undefined,
-
- /** @type {boolean} **/
- showLink: true,
-
- events: {
- 'click #emailButton': '_onEmailPrivateLink'
- },
-
- initialize: function(options) {
- var view = this;
-
- this.model.on('change:linkShare', function() {
- view.render();
- });
-
- if(!_.isUndefined(options.configModel)) {
- this.configModel = options.configModel;
- } else {
- throw 'missing OC.Share.ShareConfigModel';
- }
-
- _.bindAll(
- this,
- '_onEmailPrivateLink'
- );
- },
-
- _onEmailPrivateLink: function(event) {
- event.preventDefault();
-
- var $emailField = this.$el.find('.emailField');
- var $emailButton = this.$el.find('.emailButton');
- var email = $emailField.val();
- if (email !== '') {
- $emailField.prop('disabled', true);
- $emailButton.prop('disabled', true);
- $emailField.val(t('core', 'Sending ...'));
- this.model.sendEmailPrivateLink(email).done(function() {
- $emailField.css('font-weight', 'bold').val(t('core','Email sent'));
- setTimeout(function() {
- $emailField.val('');
- $emailField.css('font-weight', 'normal');
- $emailField.prop('disabled', false);
- $emailButton.prop('disabled', false);
- }, 2000);
- }).fail(function() {
- $emailField.val(email);
- $emailField.css('font-weight', 'normal');
- $emailField.prop('disabled', false);
- $emailButton.prop('disabled', false);
- });
- }
- return false;
- },
-
- render: function() {
- var linkShareTemplate = this.template();
- var resharingAllowed = this.model.sharePermissionPossible();
- var email = this.$el.find('.emailField').val();
-
- if(!resharingAllowed
- || !this.showLink
- || !this.configModel.isShareWithLinkAllowed())
- {
- var templateData = {shareAllowed: false};
- if (!resharingAllowed) {
- // add message
- templateData.noSharingPlaceholder = t('core', 'Resharing is not allowed');
- }
- this.$el.html(linkShareTemplate(templateData));
- return this;
- }
-
- var isLinkShare = this.model.get('linkShare').isLinkShare;
-
- this.$el.html(linkShareTemplate({
- cid: this.cid,
- shareAllowed: true,
- mailPublicNotificationEnabled: isLinkShare && this.configModel.isMailPublicNotificationEnabled(),
- mailPrivatePlaceholder: t('core', 'Email link to person'),
- mailButtonText: t('core', 'Send link via email'),
- email: email
- }));
-
- var $emailField = this.$el.find('.emailField');
- if (isLinkShare && $emailField.length !== 0) {
- $emailField.autocomplete({
- minLength: 1,
- source: function (search, response) {
- $.get(
- OC.generateUrl('core/ajax/share.php'), {
- fetch: 'getShareWithEmail',
- search: search.term
- }, function(result) {
- if (result.status === 'success' && result.data.length > 0) {
- response(result.data);
- }
- });
- },
- select: function( event, item ) {
- $emailField.val(item.item.email);
- return false;
- }
- })
- .data("ui-autocomplete")._renderItem = function( ul, item ) {
- return $('<li>')
- .append('<a>' + escapeHTML(item.displayname) + "<br>" + escapeHTML(item.email) + '</a>' )
- .appendTo( ul );
- };
- }
- this.delegateEvents();
-
- return this;
- },
-
- /**
- * @returns {Function} from Handlebars
- * @private
- */
- template: function () {
- if (!this._template) {
- this._template = Handlebars.compile(TEMPLATE);
- }
- return this._template;
- }
-
- });
-
- OC.Share.ShareDialogMailView = ShareDialogMailView;
-
-})();
diff --git a/core/js/sharedialogshareelistview.js b/core/js/sharedialogshareelistview.js
index 775eaa554b0..f532d27c4b6 100644
--- a/core/js/sharedialogshareelistview.js
+++ b/core/js/sharedialogshareelistview.js
@@ -173,7 +173,6 @@
hasCreatePermission: this.model.hasCreatePermission(shareIndex),
hasUpdatePermission: this.model.hasUpdatePermission(shareIndex),
hasDeletePermission: this.model.hasDeletePermission(shareIndex),
- wasMailSent: this.model.notificationMailWasSent(shareIndex),
shareWith: shareWith,
shareWithDisplayName: shareWithDisplayName,
shareWithTitle: shareWithTitle,
@@ -189,7 +188,6 @@
getShareeList: function() {
var universal = {
avatarEnabled: this.configModel.areAvatarsEnabled(),
- notifyByMailLabel: t('core', 'notify by email'),
unshareLabel: t('core', 'Unshare'),
canShareLabel: t('core', 'can reshare'),
canEditLabel: t('core', 'can edit'),
diff --git a/core/js/sharedialogview.js b/core/js/sharedialogview.js
index 3b2a7480c47..b277a1226c7 100644
--- a/core/js/sharedialogview.js
+++ b/core/js/sharedialogview.js
@@ -28,7 +28,6 @@
'<div class="shareeListView subView"></div>' +
'<div class="linkShareView subView"></div>' +
'<div class="expirationView subView"></div>' +
- '<div class="mailView subView"></div>' +
'<div class="loading hidden" style="height: 50px"></div>';
var TEMPLATE_REMOTE_SHARE_INFO =
@@ -70,9 +69,6 @@
/** @type {object} **/
shareeListView: undefined,
- /** @type {object} **/
- mailView: undefined,
-
events: {
'input .shareWithField': 'onShareWithFieldChanged'
},
@@ -109,8 +105,7 @@
resharerInfoView: 'ShareDialogResharerInfoView',
linkShareView: 'ShareDialogLinkShareView',
expirationView: 'ShareDialogExpirationView',
- shareeListView: 'ShareDialogShareeListView',
- mailView: 'ShareDialogMailView'
+ shareeListView: 'ShareDialogShareeListView'
};
for(var name in subViews) {
@@ -383,9 +378,6 @@
this.shareeListView.$el = this.$el.find('.shareeListView');
this.shareeListView.render();
- this.mailView.$el = this.$el.find('.mailView');
- this.mailView.render();
-
this.$el.find('.hasTooltip').tooltip();
return this;
diff --git a/core/js/shareitemmodel.js b/core/js/shareitemmodel.js
index ecc75ab147c..a784f59f67f 100644
--- a/core/js/shareitemmodel.js
+++ b/core/js/shareitemmodel.js
@@ -417,49 +417,6 @@
return (share.permissions & permission) === permission;
},
- notificationMailWasSent: function(shareIndex) {
- /** @type OC.Share.Types.ShareInfo **/
- var share = this.get('shares')[shareIndex];
- if(!_.isObject(share)) {
- throw "Unknown Share";
- }
- return share.mail_send === 1;
- },
-
- /**
- * Send the link share information by email
- *
- * @param {string} recipientEmail recipient email address
- */
- sendEmailPrivateLink: function(recipientEmail) {
- var deferred = $.Deferred();
- var itemType = this.get('itemType');
- var itemSource = this.get('itemSource');
- var linkShare = this.get('linkShare');
-
- $.post(
- OC.generateUrl('core/ajax/share.php'), {
- action: 'email',
- toaddress: recipientEmail,
- link: linkShare.link,
- itemType: itemType,
- itemSource: itemSource,
- file: this.fileInfoModel.get('name'),
- expiration: linkShare.expiration || ''
- },
- function(result) {
- if (!result || result.status !== 'success') {
- // FIXME: a model should not show dialogs
- OC.dialogs.alert(result.data.message, t('core', 'Error while sending notification'));
- deferred.reject();
- } else {
- deferred.resolve();
- }
- });
-
- return deferred.promise();
- },
-
/**
* @returns {boolean}
*/
diff --git a/core/js/tests/specs/sharedialogshareelistview.js b/core/js/tests/specs/sharedialogshareelistview.js
index 699e2e58d7b..bcc596a1386 100644
--- a/core/js/tests/specs/sharedialogshareelistview.js
+++ b/core/js/tests/specs/sharedialogshareelistview.js
@@ -34,8 +34,6 @@ describe('OC.Share.ShareDialogShareeListView', function () {
oldAppConfig = _.extend({}, oc_appconfig.core);
oc_appconfig.core.enforcePasswordForPublicLink = false;
- $('#testArea').append('<input id="mailNotificationEnabled" name="mailNotificationEnabled" type="hidden" value="yes">');
-
fileInfoModel = new OCA.Files.FileInfoModel({
id: 123,
name: 'shared_file_name.txt',
diff --git a/core/js/tests/specs/sharedialogviewSpec.js b/core/js/tests/specs/sharedialogviewSpec.js
index f0e027d9fb9..6e86cb8eff7 100644
--- a/core/js/tests/specs/sharedialogviewSpec.js
+++ b/core/js/tests/specs/sharedialogviewSpec.js
@@ -41,7 +41,6 @@ describe('OC.Share.ShareDialogView', function() {
beforeEach(function() {
// horrible parameters
$('#testArea').append('<input id="allowShareWithLink" type="hidden" value="yes">');
- $('#testArea').append('<input id="mailPublicNotificationEnabled" name="mailPublicNotificationEnabled" type="hidden" value="yes">');
$container = $('#shareContainer');
/* jshint camelcase:false */
oldAppConfig = _.extend({}, oc_appconfig.core);
@@ -247,7 +246,7 @@ describe('OC.Share.ShareDialogView', function() {
expect(slideToggleStub.callCount).toEqual(1);
expect(slideToggleStub.getCall(0).thisValue.eq(0).attr('id')).toEqual('linkPass');
expect(fakeServer.requests.length).toEqual(0);
-
+
// Now untoggle share by link
dialog.$el.find('.linkCheckbox').click();
dialog.render();
@@ -402,76 +401,7 @@ describe('OC.Share.ShareDialogView', function() {
expect($.datepicker._defaults.maxDate).toEqual(new Date(2014, 0, 27, 0, 0, 0, 0));
});
});
- describe('send link by email', function() {
- var sendEmailPrivateLinkStub;
- var clock;
-
- beforeEach(function() {
- configModel.set({
- isMailPublicNotificationEnabled: true
- });
-
- shareModel.set('linkShare', {
- isLinkShare: true,
- token: 'tehtoken',
- permissions: OC.PERMISSION_READ,
- expiration: null
- });
-
- sendEmailPrivateLinkStub = sinon.stub(dialog.model, "sendEmailPrivateLink");
- clock = sinon.useFakeTimers();
- });
- afterEach(function() {
- sendEmailPrivateLinkStub.restore();
- clock.restore();
- });
- it('displays form when sending emails is enabled', function() {
- $('input[name=mailPublicNotificationEnabled]').val('yes');
- dialog.render();
- expect(dialog.$('.emailPrivateLinkForm').length).toEqual(1);
- });
- it('form not rendered when sending emails is disabled', function() {
- $('input[name=mailPublicNotificationEnabled]').val('no');
- dialog.render();
- expect(dialog.$('.emailPrivateLinkForm').length).toEqual(0);
- });
- it('input cleared on success', function() {
- var defer = $.Deferred();
- sendEmailPrivateLinkStub.returns(defer.promise());
-
- $('input[name=mailPublicNotificationEnabled]').val('yes');
- dialog.render();
-
- dialog.$el.find('.emailPrivateLinkForm .emailField').val('a@b.c');
- dialog.$el.find('#emailButton').trigger('click');
-
- expect(sendEmailPrivateLinkStub.callCount).toEqual(1);
- expect(dialog.$el.find('.emailPrivateLinkForm .emailField').val()).toEqual('Sending ...');
-
- defer.resolve();
- expect(dialog.$el.find('.emailPrivateLinkForm .emailField').val()).toEqual('Email sent');
-
- clock.tick(2000);
- expect(dialog.$el.find('.emailPrivateLinkForm .emailField').val()).toEqual('');
- });
- it('input not cleared on failure', function() {
- var defer = $.Deferred();
- sendEmailPrivateLinkStub.returns(defer.promise());
-
- $('input[name=mailPublicNotificationEnabled]').val('yes');
- dialog.render();
-
- dialog.$el.find('.emailPrivateLinkForm .emailField').val('a@b.c');
- dialog.$el.find('#emailButton').trigger('click');
-
- expect(sendEmailPrivateLinkStub.callCount).toEqual(1);
- expect(dialog.$el.find('.emailPrivateLinkForm .emailField').val()).toEqual('Sending ...');
-
- defer.reject();
- expect(dialog.$el.find('.emailPrivateLinkForm .emailField').val()).toEqual('a@b.c');
- });
- });
});
describe('check for avatar', function() {
beforeEach(function() {
diff --git a/core/js/tests/specs/shareitemmodelSpec.js b/core/js/tests/specs/shareitemmodelSpec.js
index 9d9001dc9e8..1cddcb2acaa 100644
--- a/core/js/tests/specs/shareitemmodelSpec.js
+++ b/core/js/tests/specs/shareitemmodelSpec.js
@@ -464,107 +464,7 @@ describe('OC.Share.ShareItemModel', function() {
});
});
- describe('sendEmailPrivateLink', function() {
- it('succeeds', function() {
- /* jshint camelcase: false */
- fetchReshareDeferred.resolve(makeOcsResponse([]));
- fetchSharesDeferred.resolve(makeOcsResponse([{
- displayname_owner: 'root',
- expiration: null,
- file_source: 123,
- file_target: '/folder',
- id: 20,
- item_source: '123',
- item_type: 'folder',
- mail_send: '0',
- parent: null,
- path: '/folder',
- permissions: OC.PERMISSION_READ,
- share_type: OC.Share.SHARE_TYPE_LINK,
- share_with: null,
- stime: 1403884258,
- storage: 1,
- token: 'tehtoken',
- uid_owner: 'root'
- }]));
- OC.currentUser = 'root';
- model.fetch();
-
- var res = model.sendEmailPrivateLink('foo@bar.com');
-
- expect(res.state()).toEqual('pending');
- expect(fakeServer.requests.length).toEqual(1);
- expect(fakeServer.requests[0].url).toEqual(OC.generateUrl('core/ajax/share.php'));
- expect(OC.parseQueryString(fakeServer.requests[0].requestBody)).toEqual(
- {
- action: 'email',
- toaddress: 'foo@bar.com',
- link: model.get('linkShare').link,
- itemType: 'file',
- itemSource: '123',
- file: 'shared_file_name.txt',
- expiration: ''
- }
- )
-
- fakeServer.requests[0].respond(
- 200,
- { 'Content-Type': 'application/json' },
- JSON.stringify({status: 'success'})
- );
- expect(res.state()).toEqual('resolved');
- });
-
- it('fails', function() {
- /* jshint camelcase: false */
- fetchReshareDeferred.resolve(makeOcsResponse([]));
- fetchSharesDeferred.resolve(makeOcsResponse([{
- displayname_owner: 'root',
- expiration: null,
- file_source: 123,
- file_target: '/folder',
- id: 20,
- item_source: '123',
- item_type: 'folder',
- mail_send: '0',
- parent: null,
- path: '/folder',
- permissions: OC.PERMISSION_READ,
- share_type: OC.Share.SHARE_TYPE_LINK,
- share_with: null,
- stime: 1403884258,
- storage: 1,
- token: 'tehtoken',
- uid_owner: 'root'
- }]));
- OC.currentUser = 'root';
- model.fetch();
-
- var res = model.sendEmailPrivateLink('foo@bar.com');
-
- expect(res.state()).toEqual('pending');
- expect(fakeServer.requests.length).toEqual(1);
- expect(fakeServer.requests[0].url).toEqual(OC.generateUrl('core/ajax/share.php'));
- expect(OC.parseQueryString(fakeServer.requests[0].requestBody)).toEqual(
- {
- action: 'email',
- toaddress: 'foo@bar.com',
- link: model.get('linkShare').link,
- itemType: 'file',
- itemSource: '123',
- file: 'shared_file_name.txt',
- expiration: ''
- }
- )
-
- fakeServer.requests[0].respond(
- 200,
- { 'Content-Type': 'application/json' },
- JSON.stringify({data: {message: 'fail'}, status: 'error'})
- );
- expect(res.state()).toEqual('rejected');
- });
- });
+
describe('share permissions', function() {
beforeEach(function() {
oc_appconfig.core.resharingAllowed = true;
@@ -635,7 +535,7 @@ describe('OC.Share.ShareItemModel', function() {
addShareStub = sinon.stub(model, 'addShare');
updateShareStub = sinon.stub(model, 'updateShare');
});
- afterEach(function() {
+ afterEach(function() {
addShareStub.restore();
updateShareStub.restore();
});
diff --git a/lib/private/Settings/Admin/Sharing.php b/lib/private/Settings/Admin/Sharing.php
index 59821044605..9b17efa8028 100644
--- a/lib/private/Settings/Admin/Sharing.php
+++ b/lib/private/Settings/Admin/Sharing.php
@@ -52,8 +52,6 @@ class Sharing implements ISettings {
// Built-In Sharing
'allowGroupSharing' => $this->config->getAppValue('core', 'shareapi_allow_group_sharing', 'yes'),
'allowLinks' => $this->config->getAppValue('core', 'shareapi_allow_links', 'yes'),
- 'allowMailNotification' => $this->config->getAppValue('core', 'shareapi_allow_mail_notification', 'no'),
- 'allowPublicMailNotification' => $this->config->getAppValue('core', 'shareapi_allow_public_notification', 'no'),
'allowPublicUpload' => $this->config->getAppValue('core', 'shareapi_allow_public_upload', 'yes'),
'allowResharing' => $this->config->getAppValue('core', 'shareapi_allow_resharing', 'yes'),
'allowShareDialogUserEnumeration' => $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes'),
diff --git a/settings/templates/admin/sharing.php b/settings/templates/admin/sharing.php
index eed8f36dbda..db025c8f205 100644
--- a/settings/templates/admin/sharing.php
+++ b/settings/templates/admin/sharing.php
@@ -81,11 +81,6 @@
<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_allow_mail_notification" id="allowMailNotification" class="checkbox"
- value="1" <?php if ($_['allowMailNotification'] === 'yes') print_unescaped('checked="checked"'); ?> />
- <label for="allowMailNotification"><?php p($l->t('Allow users to send mail notification for shared files to other users'));?></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']) print_unescaped('checked="checked"'); ?> />
<label for="shareapiExcludeGroups"><?php p($l->t('Exclude groups from sharing'));?></label><br/>
diff --git a/tests/lib/Settings/Admin/SharingTest.php b/tests/lib/Settings/Admin/SharingTest.php
index d0cda5308f5..122bf2b6caf 100644
--- a/tests/lib/Settings/Admin/SharingTest.php
+++ b/tests/lib/Settings/Admin/SharingTest.php
@@ -62,55 +62,45 @@ class SharingTest extends TestCase {
$this->config
->expects($this->at(3))
->method('getAppValue')
- ->with('core', 'shareapi_allow_mail_notification', 'no')
- ->willReturn('no');
- $this->config
- ->expects($this->at(4))
- ->method('getAppValue')
- ->with('core', 'shareapi_allow_public_notification', 'no')
- ->willReturn('no');
- $this->config
- ->expects($this->at(5))
- ->method('getAppValue')
->with('core', 'shareapi_allow_public_upload', 'yes')
->willReturn('yes');
$this->config
- ->expects($this->at(6))
+ ->expects($this->at(4))
->method('getAppValue')
->with('core', 'shareapi_allow_resharing', 'yes')
->willReturn('yes');
$this->config
- ->expects($this->at(7))
+ ->expects($this->at(5))
->method('getAppValue')
->with('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes')
->willReturn('yes');
$this->config
- ->expects($this->at(8))
+ ->expects($this->at(6))
->method('getAppValue')
->with('core', 'shareapi_enabled', 'yes')
->willReturn('yes');
$this->config
- ->expects($this->at(9))
+ ->expects($this->at(7))
->method('getAppValue')
->with('core', 'shareapi_default_expire_date', 'no')
->willReturn('no');
$this->config
- ->expects($this->at(10))
+ ->expects($this->at(8))
->method('getAppValue')
->with('core', 'shareapi_expire_after_n_days', '7')
->willReturn('7');
$this->config
- ->expects($this->at(11))
+ ->expects($this->at(9))
->method('getAppValue')
->with('core', 'shareapi_enforce_expire_date', 'no')
->willReturn('no');
$this->config
- ->expects($this->at(12))
+ ->expects($this->at(10))
->method('getAppValue')
->with('core', 'shareapi_exclude_groups', 'no')
->willReturn('no');
$this->config
- ->expects($this->at(13))
+ ->expects($this->at(11))
->method('getAppValue')
->with('core', 'shareapi_public_link_disclaimertext', null)
->willReturn('Lorem ipsum');
@@ -121,8 +111,6 @@ class SharingTest extends TestCase {
[
'allowGroupSharing' => 'yes',
'allowLinks' => 'yes',
- 'allowMailNotification' => 'no',
- 'allowPublicMailNotification' => 'no',
'allowPublicUpload' => 'yes',
'allowResharing' => 'yes',
'allowShareDialogUserEnumeration' => 'yes',
@@ -161,55 +149,45 @@ class SharingTest extends TestCase {
$this->config
->expects($this->at(3))
->method('getAppValue')
- ->with('core', 'shareapi_allow_mail_notification', 'no')
- ->willReturn('no');
- $this->config
- ->expects($this->at(4))
- ->method('getAppValue')
- ->with('core', 'shareapi_allow_public_notification', 'no')
- ->willReturn('no');
- $this->config
- ->expects($this->at(5))
- ->method('getAppValue')
->with('core', 'shareapi_allow_public_upload', 'yes')
->willReturn('yes');
$this->config
- ->expects($this->at(6))
+ ->expects($this->at(4))
->method('getAppValue')
->with('core', 'shareapi_allow_resharing', 'yes')
->willReturn('yes');
$this->config
- ->expects($this->at(7))
+ ->expects($this->at(5))
->method('getAppValue')
->with('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes')
->willReturn('yes');
$this->config
- ->expects($this->at(8))
+ ->expects($this->at(6))
->method('getAppValue')
->with('core', 'shareapi_enabled', 'yes')
->willReturn('yes');
$this->config
- ->expects($this->at(9))
+ ->expects($this->at(7))
->method('getAppValue')
->with('core', 'shareapi_default_expire_date', 'no')
->willReturn('no');
$this->config
- ->expects($this->at(10))
+ ->expects($this->at(8))
->method('getAppValue')
->with('core', 'shareapi_expire_after_n_days', '7')
->willReturn('7');
$this->config
- ->expects($this->at(11))
+ ->expects($this->at(9))
->method('getAppValue')
->with('core', 'shareapi_enforce_expire_date', 'no')
->willReturn('no');
$this->config
- ->expects($this->at(12))
+ ->expects($this->at(10))
->method('getAppValue')
->with('core', 'shareapi_exclude_groups', 'no')
->willReturn('yes');
$this->config
- ->expects($this->at(13))
+ ->expects($this->at(11))
->method('getAppValue')
->with('core', 'shareapi_public_link_disclaimertext', null)
->willReturn('Lorem ipsum');
@@ -220,8 +198,6 @@ class SharingTest extends TestCase {
[
'allowGroupSharing' => 'yes',
'allowLinks' => 'yes',
- 'allowMailNotification' => 'no',
- 'allowPublicMailNotification' => 'no',
'allowPublicUpload' => 'yes',
'allowResharing' => 'yes',
'allowShareDialogUserEnumeration' => 'yes',