From cfec290ad90f8bce01f37cd0ec1f957219770aad Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Thu, 23 Aug 2012 14:48:35 -0400 Subject: Prevent resharing in UI if share permission not granted --- core/js/share.js | 110 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 58 insertions(+), 52 deletions(-) (limited to 'core/js') diff --git a/core/js/share.js b/core/js/share.js index e765303a267..1c96cfa2232 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -86,65 +86,71 @@ OC.Share={ } html += '
'; } - html += ''; - html += ''; - if (privateLink) { - html += ''; - } - html += ''; - $(html).appendTo(appendTo); - // Reset item shares - OC.Share.itemShares = []; - if (data.shares) { - $.each(data.shares, function(index, share) { - if (share.share_type == OC.Share.SHARE_TYPE_PRIVATE_LINK) { - OC.Share.showPrivateLink(item, share.share_with); - } else { - OC.Share.addShareWith(share.share_type, share.share_with, share.permissions, possiblePermissions); - - } - }); - } - $('#shareWith').autocomplete({minLength: 2, source: function(search, response) { -// if (cache[search.term]) { -// response(cache[search.term]); -// } else { - $.get(OC.filePath('core', 'ajax', 'share.php'), { fetch: 'getShareWith', search: search.term, itemShares: OC.Share.itemShares }, function(result) { - if (result.status == 'success' && result.data.length > 0) { - response(result.data); + $(html).appendTo(appendTo); + // Reset item shares + OC.Share.itemShares = []; + if (data.shares) { + $.each(data.shares, function(index, share) { + if (share.share_type == OC.Share.SHARE_TYPE_PRIVATE_LINK) { + OC.Share.showPrivateLink(item, share.share_with); } else { - // Suggest sharing via email if valid email address - var pattern = new RegExp(/^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i); - if (pattern.test(search.term)) { - response([{label: 'Share via email: '+search.term, value: {shareType: OC.Share.SHARE_TYPE_EMAIL, shareWith: search.term}}]); + OC.Share.addShareWith(share.share_type, share.share_with, share.permissions, possiblePermissions); + + } + }); + } + $('#shareWith').autocomplete({minLength: 2, source: function(search, response) { + // if (cache[search.term]) { + // response(cache[search.term]); + // } else { + $.get(OC.filePath('core', 'ajax', 'share.php'), { fetch: 'getShareWith', search: search.term, itemShares: OC.Share.itemShares }, function(result) { + if (result.status == 'success' && result.data.length > 0) { + response(result.data); } else { - response(['No people found']); + // Suggest sharing via email if valid email address + var pattern = new RegExp(/^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i); + if (pattern.test(search.term)) { + response([{label: 'Share via email: '+search.term, value: {shareType: OC.Share.SHARE_TYPE_EMAIL, shareWith: search.term}}]); + } else { + response(['No people found']); + } } - } + }); + // } + }, + focus: function(event, focused) { + event.preventDefault(); + }, + select: function(event, selected) { + var shareType = selected.item.value.shareType; + var shareWith = selected.item.value.shareWith; + $(this).val(shareWith); + // Default permissions are Read and Share + var permissions = OC.Share.PERMISSION_READ | OC.Share.PERMISSION_SHARE; + OC.Share.share($('#dropdown').data('item-type'), $('#dropdown').data('item-source'), shareType, shareWith, permissions, function() { + OC.Share.addShareWith(shareType, shareWith, permissions, possiblePermissions); + $('#shareWith').val(''); }); -// } - }, - focus: function(event, focused) { - event.preventDefault(); - }, - select: function(event, selected) { - var shareType = selected.item.value.shareType; - var shareWith = selected.item.value.shareWith; - $(this).val(shareWith); - // Default permissions are Read and Share - var permissions = OC.Share.PERMISSION_READ | OC.Share.PERMISSION_SHARE; - OC.Share.share($('#dropdown').data('item-type'), $('#dropdown').data('item-source'), shareType, shareWith, permissions, function() { - OC.Share.addShareWith(shareType, shareWith, permissions, possiblePermissions); - $('#shareWith').val(''); + return false; + } }); - return false; + } else { + html += ''; + html += ''; + $(html).appendTo(appendTo); } - }); $('#dropdown').show('blind', function() { OC.Share.droppedDown = true; }); -- cgit v1.2.3