зеркало из https://github.com/nextcloud/server.git
remove 'send mail notification' option from sharing, replaced by send-by-mail feature
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
This commit is contained in:
Родитель
7da3ba3f91
Коммит
f556c58c22
|
@ -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');
|
||||
|
|
|
@ -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']) ?>" />
|
||||
|
|
|
@ -218,8 +218,6 @@ class ViewControllerTest extends TestCase {
|
|||
'defaultFileSortingDirection' => 'asc',
|
||||
'showHiddenFiles' => 0,
|
||||
'fileNotFound' => 0,
|
||||
'mailNotificationEnabled' => 'no',
|
||||
'mailPublicNotificationEnabled' => 'no',
|
||||
'allowShareWithLink' => 'yes',
|
||||
'appNavigation' => $nav,
|
||||
'appContents' => [
|
||||
|
|
|
@ -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';
|
||||
}
|
||||
|
||||
|
|
|
@ -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'],
|
||||
|
|
|
@ -46,20 +46,6 @@
|
|||
return publicUploadEnabled === 'yes';
|
||||
},
|
||||
|
||||
/**
|
||||
* @returns {boolean}
|
||||
*/
|
||||
isMailPublicNotificationEnabled: function() {
|
||||
return $('input:hidden[name=mailPublicNotificationEnabled]').val() === 'yes';
|
||||
},
|
||||
|
||||
/**
|
||||
* @returns {boolean}
|
||||
*/
|
||||
isMailNotificationEnabled: function() {
|
||||
return $('input:hidden[name=mailNotificationEnabled]').val() === 'yes';
|
||||
},
|
||||
|
||||
/**
|
||||
* @returns {boolean}
|
||||
*/
|
||||
|
|
|
@ -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')
|
||||
}));
|
||||
|
|
|
@ -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;
|
||||
|
||||
})();
|
|
@ -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'),
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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}
|
||||
*/
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -247,7 +247,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 +402,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() {
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
|
|
|
@ -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'),
|
||||
|
|
|
@ -80,11 +80,6 @@
|
|||
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') 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"'); ?> />
|
||||
|
|
|
@ -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',
|
||||
|
|
Загрузка…
Ссылка в новой задаче