Merge pull request #12273 from nextcloud/public-share-enforce-pass-fix

Fix password enforce on public share links
This commit is contained in:
John Molakvoæ 2018-11-06 18:28:08 +01:00 committed by GitHub
commit 0f1edd538e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 8 deletions

View File

@ -1,7 +1,7 @@
{{#if shareAllowed}}
<ul class="shareWithList">
{{#if nolinkShares}}
<li data-share-id="new-share">
<li data-share-id="{{newShareId}}">
<div class="avatar icon-public-white"></div>
<span class="username">{{newShareLabel}}</span>
<span class="sharingOptionsGroup">

View File

@ -1,4 +1,4 @@
<div class="popovermenu open menu">
<div class="popovermenu open menu pending">
<ul>
{{#if isPasswordEnforced}}
<li>

View File

@ -45,6 +45,9 @@
/** @type {string} **/
password: '',
/** @type {string} **/
newShareId: 'new-share',
events: {
// open menu
'click .share-menu .icon-more': 'onToggleMenu',
@ -226,8 +229,8 @@
// We need a password before the share creation
if (isPasswordEnforced && !this.showPending && this.password === '') {
this.showPending = shareId;
this.render();
$li.find('#enforcedPassText').focus();
var self = this.render();
self.$el.find('.pending #enforcedPassText').focus();
} else {
// else, we have a password or it is not enforced
$.when(this.model.saveLinkShare(shareData, {
@ -248,11 +251,23 @@
}
},
error: function() {
// empty function to override the default Dialog warning
}
})).fail(function(response) {
// password failure? Show error
self.password = ''
if (isPasswordEnforced && response && response.responseJSON && response.responseJSON.ocs.meta && response.responseJSON.ocs.meta.message) {
$input = self.$el.find('.pending #enforcedPassText')
$input.tooltip('destroy');
$input.attr('title', response.responseJSON.ocs.meta.message);
$input.tooltip({placement: 'bottom', trigger: 'manual'});
$input.tooltip('show');
} else {
OC.Notification.showTemporary(t('core', 'Unable to create a link share'));
$loading.addClass('hidden');
$li.find('.icon').removeClass('hidden');
}
})).then(function(response) {
}).then(function(response) {
// resolve before success
newShareId = response.ocs.data.id
});
@ -650,7 +665,8 @@
newShareLabel: t('core', 'Share link'),
newShareTitle: t('core', 'New share link'),
pendingPopoverMenu: pendingPopoverMenu,
showPending: this.showPending === 'new',
showPending: this.showPending === this.newShareId,
newShareId: this.newShareId,
}));
this.delegateEvents();

View File

@ -10,7 +10,9 @@ templates['sharedialoglinkshareview'] = template({"1":function(container,depth0,
},"2":function(container,depth0,helpers,partials,data) {
var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression;
return " <li data-share-id=\"new-share\">\n <div class=\"avatar icon-public-white\"></div>\n <span class=\"username\">"
return " <li data-share-id=\""
+ alias4(((helper = (helper = helpers.newShareId || (depth0 != null ? depth0.newShareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"newShareId","hash":{},"data":data}) : helper)))
+ "\">\n <div class=\"avatar icon-public-white\"></div>\n <span class=\"username\">"
+ alias4(((helper = (helper = helpers.newShareLabel || (depth0 != null ? depth0.newShareLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"newShareLabel","hash":{},"data":data}) : helper)))
+ "</span>\n <span class=\"sharingOptionsGroup\">\n <div class=\"share-menu\">\n <a href=\"#\" class=\"icon icon-add new-share has-tooltip "
+ ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.showPending : depth0),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")
@ -269,7 +271,7 @@ templates['sharedialoglinkshareview_popover_menu_pending'] = template({"1":funct
},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
var stack1;
return "<div class=\"popovermenu open menu\">\n <ul>\n"
return "<div class=\"popovermenu open menu pending\">\n <ul>\n"
+ ((stack1 = helpers["if"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isPasswordEnforced : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")
+ " </ul>\n</div>\n";
},"useData":true});