mirror of
https://github.com/telekom-security/tpotce.git
synced 2025-07-02 01:27:27 -04:00
add 10 personas for snare
This commit is contained in:
319
docker/tanner/snare/dist/pages/5/d89658f37be5eb730cfea92eaf208c03
vendored
Normal file
319
docker/tanner/snare/dist/pages/5/d89658f37be5eb730cfea92eaf208c03
vendored
Normal file
@ -0,0 +1,319 @@
|
||||
/*
|
||||
* Copyright (c) 2015
|
||||
*
|
||||
* This file is licensed under the Affero General Public License version 3
|
||||
* or later.
|
||||
*
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
(function() {
|
||||
if (!OC.Share) {
|
||||
OC.Share = {};
|
||||
}
|
||||
|
||||
var TEMPLATE =
|
||||
'<ul id="shareWithList" class="shareWithList">' +
|
||||
'{{#each sharees}}' +
|
||||
'<li data-share-id="{{shareId}}" data-share-type="{{shareType}}" data-share-with="{{shareWith}}">' +
|
||||
'<a href="#" class="unshare"><span class="icon-loading-small hidden"></span><span class="icon icon-delete"></span><span class="hidden-visually">{{unshareLabel}}</span></a>' +
|
||||
'{{#if avatarEnabled}}' +
|
||||
'<div class="avatar {{#if modSeed}}imageplaceholderseed{{/if}}" data-username="{{shareWith}}" {{#if modSeed}}data-seed="{{shareWith}} {{shareType}}"{{/if}}></div>' +
|
||||
'{{/if}}' +
|
||||
'<span class="has-tooltip username" title="{{shareWith}}">{{shareWithDisplayName}}</span>' +
|
||||
'{{#if shareWithAdditionalInfo}}' +
|
||||
'<span class="has-tooltip user-additional-info">({{shareWithAdditionalInfo}})</span>' +
|
||||
'{{/if}}' +
|
||||
'{{#if mailNotificationEnabled}} {{#unless isRemoteShare}}' +
|
||||
'<span class="shareOption">' +
|
||||
'{{#unless wasMailSent}}' +
|
||||
'<span class="mailNotificationSpinner icon-loading-small hidden"></span>' +
|
||||
'<input id="mail-{{cid}}-{{shareWith}}" type="button" name="mailNotification" value="{{notifyByMailLabel}}" class="mailNotification checkbox" />' +
|
||||
'{{/unless}}' +
|
||||
'</span>' +
|
||||
'{{/unless}} {{/if}}' +
|
||||
'{{#if isResharingAllowed}} {{#if sharePermissionPossible}}' +
|
||||
'<span class="shareOption">' +
|
||||
'<input id="canShare-{{cid}}-{{shareWith}}" type="checkbox" name="share" class="permissions checkbox" {{#if hasSharePermission}}checked="checked"{{/if}} data-permissions="{{sharePermission}}" />' +
|
||||
'<label for="canShare-{{cid}}-{{shareWith}}">{{canShareLabel}}</label>' +
|
||||
'</span>' +
|
||||
'{{/if}} {{/if}}' +
|
||||
'{{#if editPermissionPossible}}' +
|
||||
'<span class="shareOption">' +
|
||||
'<input id="canEdit-{{cid}}-{{shareWith}}" type="checkbox" name="edit" class="permissions checkbox" {{#if hasEditPermission}}checked="checked"{{/if}} />' +
|
||||
'<label for="canEdit-{{cid}}-{{shareWith}}">{{canEditLabel}}</label>' +
|
||||
'<a href="#" class="showCruds"><img alt="{{crudsLabel}}" src="{{triangleSImage}}"/></a>' +
|
||||
'</span>' +
|
||||
'{{/if}}' +
|
||||
'<div class="cruds hidden">' +
|
||||
'{{#if createPermissionPossible}}' +
|
||||
'<span class="shareOption">' +
|
||||
'<input id="canCreate-{{cid}}-{{shareWith}}" type="checkbox" name="create" class="permissions checkbox" {{#if hasCreatePermission}}checked="checked"{{/if}} data-permissions="{{createPermission}}"/>' +
|
||||
'<label for="canCreate-{{cid}}-{{shareWith}}">{{createPermissionLabel}}</label>' +
|
||||
'</span>' +
|
||||
'{{/if}}' +
|
||||
'{{#if updatePermissionPossible}}' +
|
||||
'<span class="shareOption">' +
|
||||
'<input id="canUpdate-{{cid}}-{{shareWith}}" type="checkbox" name="update" class="permissions checkbox" {{#if hasUpdatePermission}}checked="checked"{{/if}} data-permissions="{{updatePermission}}"/>' +
|
||||
'<label for="canUpdate-{{cid}}-{{shareWith}}">{{updatePermissionLabel}}</label>' +
|
||||
'</span>' +
|
||||
'{{/if}}' +
|
||||
'{{#if deletePermissionPossible}}' +
|
||||
'<span class="shareOption">' +
|
||||
'<input id="canDelete-{{cid}}-{{shareWith}}" type="checkbox" name="delete" class="permissions checkbox" {{#if hasDeletePermission}}checked="checked"{{/if}} data-permissions="{{deletePermission}}"/>' +
|
||||
'<label for="canDelete-{{cid}}-{{shareWith}}">{{deletePermissionLabel}}</label>' +
|
||||
'</span>' +
|
||||
'{{/if}}' +
|
||||
'</div>' +
|
||||
'</li>' +
|
||||
'{{/each}}' +
|
||||
'</ul>'
|
||||
;
|
||||
|
||||
/**
|
||||
* @class OCA.Share.ShareDialogShareeListView
|
||||
* @member {OC.Share.ShareItemModel} model
|
||||
* @member {jQuery} $el
|
||||
* @memberof OCA.Sharing
|
||||
* @classdesc
|
||||
*
|
||||
* Represents the sharee list part in the GUI of the share dialogue
|
||||
*
|
||||
*/
|
||||
var ShareDialogShareeListView = OC.Backbone.View.extend({
|
||||
/** @type {string} **/
|
||||
id: 'shareDialogLinkShare',
|
||||
|
||||
/** @type {OC.Share.ShareConfigModel} **/
|
||||
configModel: undefined,
|
||||
|
||||
/** @type {Function} **/
|
||||
_template: undefined,
|
||||
|
||||
events: {
|
||||
'click .unshare': 'onUnshare',
|
||||
'click .permissions': 'onPermissionChange',
|
||||
'click .showCruds': 'onCrudsToggle',
|
||||
'click .mailNotification': 'onSendMailNotification'
|
||||
},
|
||||
|
||||
initialize: function(options) {
|
||||
if(!_.isUndefined(options.configModel)) {
|
||||
this.configModel = options.configModel;
|
||||
} else {
|
||||
throw 'missing OC.Share.ShareConfigModel';
|
||||
}
|
||||
|
||||
var view = this;
|
||||
this.model.on('change:shares', function() {
|
||||
view.render();
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {OC.Share.Types.ShareInfo} shareInfo
|
||||
* @returns {object}
|
||||
*/
|
||||
getShareeObject: function(shareIndex) {
|
||||
var shareWith = this.model.getShareWith(shareIndex);
|
||||
var shareWithDisplayName = this.model.getShareWithDisplayName(shareIndex);
|
||||
var shareType = this.model.getShareType(shareIndex);
|
||||
var shareWithAdditionalInfo = this.model.getShareWithAdditionalInfo(shareIndex);
|
||||
|
||||
var hasPermissionOverride = {};
|
||||
if (shareType === OC.Share.SHARE_TYPE_GROUP) {
|
||||
shareWithDisplayName = shareWithDisplayName + " (" + t('core', 'group') + ')';
|
||||
} else if (shareType === OC.Share.SHARE_TYPE_REMOTE) {
|
||||
shareWithDisplayName = shareWithDisplayName + " (" + t('core', 'federated') + ')';
|
||||
}
|
||||
|
||||
return _.extend(hasPermissionOverride, {
|
||||
cid: this.cid,
|
||||
hasSharePermission: this.model.hasSharePermission(shareIndex),
|
||||
hasEditPermission: this.model.hasEditPermission(shareIndex),
|
||||
hasCreatePermission: this.model.hasCreatePermission(shareIndex),
|
||||
hasUpdatePermission: this.model.hasUpdatePermission(shareIndex),
|
||||
hasDeletePermission: this.model.hasDeletePermission(shareIndex),
|
||||
wasMailSent: this.model.notificationMailWasSent(shareIndex),
|
||||
shareWith: shareWith,
|
||||
shareWithDisplayName: shareWithDisplayName,
|
||||
shareWithAdditionalInfo: shareWithAdditionalInfo,
|
||||
shareType: shareType,
|
||||
shareId: this.model.get('shares')[shareIndex].id,
|
||||
modSeed: shareType !== OC.Share.SHARE_TYPE_USER,
|
||||
isRemoteShare: shareType === OC.Share.SHARE_TYPE_REMOTE
|
||||
});
|
||||
},
|
||||
|
||||
getShareeList: function() {
|
||||
var universal = {
|
||||
avatarEnabled: this.configModel.areAvatarsEnabled(),
|
||||
mailNotificationEnabled: this.configModel.isMailNotificationEnabled(),
|
||||
notifyByMailLabel: t('core', 'notify by email'),
|
||||
unshareLabel: t('core', 'Unshare'),
|
||||
canShareLabel: t('core', 'can share'),
|
||||
canEditLabel: t('core', 'can edit'),
|
||||
createPermissionLabel: t('core', 'create'),
|
||||
updatePermissionLabel: t('core', 'change'),
|
||||
deletePermissionLabel: t('core', 'delete'),
|
||||
crudsLabel: t('core', 'access control'),
|
||||
triangleSImage: OC.imagePath('core', 'actions/triangle-s'),
|
||||
isResharingAllowed: this.configModel.get('isResharingAllowed'),
|
||||
sharePermissionPossible: this.model.sharePermissionPossible(),
|
||||
editPermissionPossible: this.model.editPermissionPossible(),
|
||||
createPermissionPossible: this.model.createPermissionPossible(),
|
||||
updatePermissionPossible: this.model.updatePermissionPossible(),
|
||||
deletePermissionPossible: this.model.deletePermissionPossible(),
|
||||
sharePermission: OC.PERMISSION_SHARE,
|
||||
createPermission: OC.PERMISSION_CREATE,
|
||||
updatePermission: OC.PERMISSION_UPDATE,
|
||||
deletePermission: OC.PERMISSION_DELETE
|
||||
};
|
||||
|
||||
if(!this.model.hasUserShares()) {
|
||||
return [];
|
||||
}
|
||||
|
||||
var shares = this.model.get('shares');
|
||||
var list = [];
|
||||
for(var index = 0; index < shares.length; index++) {
|
||||
// first empty {} is necessary, otherwise we get in trouble
|
||||
// with references
|
||||
list.push(_.extend({}, universal, this.getShareeObject(index)));
|
||||
}
|
||||
|
||||
return list;
|
||||
},
|
||||
|
||||
render: function() {
|
||||
this.$el.html(this.template({
|
||||
cid: this.cid,
|
||||
sharees: this.getShareeList()
|
||||
}));
|
||||
|
||||
if(this.configModel.areAvatarsEnabled()) {
|
||||
this.$el.find('.avatar').each(function() {
|
||||
var $this = $(this);
|
||||
if ($this.hasClass('imageplaceholderseed')) {
|
||||
$this.css({width: 32, height: 32});
|
||||
$this.imageplaceholder($this.data('seed'));
|
||||
} else {
|
||||
$this.avatar($this.data('username'), 32);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
this.$el.find('.has-tooltip').tooltip({
|
||||
placement: 'bottom'
|
||||
});
|
||||
|
||||
this.delegateEvents();
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
/**
|
||||
* @returns {Function} from Handlebars
|
||||
* @private
|
||||
*/
|
||||
template: function (data) {
|
||||
if (!this._template) {
|
||||
this._template = Handlebars.compile(TEMPLATE);
|
||||
}
|
||||
return this._template(data);
|
||||
},
|
||||
|
||||
onUnshare: function(event) {
|
||||
var self = this;
|
||||
var $element = $(event.target);
|
||||
if (!$element.is('a')) {
|
||||
$element = $element.closest('a');
|
||||
}
|
||||
|
||||
var $loading = $element.find('.icon-loading-small').eq(0);
|
||||
if(!$loading.hasClass('hidden')) {
|
||||
// in process
|
||||
return false;
|
||||
}
|
||||
$loading.removeClass('hidden');
|
||||
|
||||
var $li = $element.closest('li');
|
||||
|
||||
var shareId = $li.data('share-id');
|
||||
|
||||
self.model.removeShare(shareId)
|
||||
.done(function() {
|
||||
$li.remove();
|
||||
})
|
||||
.fail(function() {
|
||||
$loading.addClass('hidden');
|
||||
OC.Notification.showTemporary(t('core', 'Could not unshare'));
|
||||
});
|
||||
return false;
|
||||
},
|
||||
|
||||
onPermissionChange: function(event) {
|
||||
var $element = $(event.target);
|
||||
var $li = $element.closest('li');
|
||||
var shareId = $li.data('share-id');
|
||||
var shareType = $li.data('share-type');
|
||||
var shareWith = $li.attr('data-share-with');
|
||||
|
||||
// adjust checkbox states
|
||||
var $checkboxes = $('.permissions', $li).not('input[name="edit"]').not('input[name="share"]');
|
||||
var checked;
|
||||
if ($element.attr('name') === 'edit') {
|
||||
checked = $element.is(':checked');
|
||||
// Check/uncheck Create, Update, and Delete checkboxes if Edit is checked/unck
|
||||
$($checkboxes).prop('checked', checked);
|
||||
} else {
|
||||
var numberChecked = $checkboxes.filter(':checked').length;
|
||||
checked = numberChecked > 0;
|
||||
$('input[name="edit"]', $li).prop('checked', checked);
|
||||
}
|
||||
|
||||
var permissions = OC.PERMISSION_READ;
|
||||
$('.permissions', $li).not('input[name="edit"]').filter(':checked').each(function(index, checkbox) {
|
||||
permissions |= $(checkbox).data('permissions');
|
||||
});
|
||||
|
||||
this.model.updateShare(shareId, {permissions: permissions});
|
||||
},
|
||||
|
||||
onCrudsToggle: function(event) {
|
||||
var $target = $(event.target);
|
||||
$target.closest('li').find('.cruds').toggleClass('hidden');
|
||||
return false;
|
||||
},
|
||||
|
||||
onSendMailNotification: function(event) {
|
||||
var $target = $(event.target);
|
||||
var $li = $(event.target).closest('li');
|
||||
var shareType = $li.data('share-type');
|
||||
var shareWith = $li.attr('data-share-with');
|
||||
|
||||
var $loading = $target.prev('.icon-loading-small');
|
||||
|
||||
$target.addClass('hidden');
|
||||
$loading.removeClass('hidden');
|
||||
|
||||
this.model.sendNotificationForShare(shareType, shareWith, true).then(function(result) {
|
||||
if (result.status === 'success') {
|
||||
OC.Notification.showTemporary(t('core', 'Email notification was sent!'));
|
||||
$target.remove();
|
||||
} else {
|
||||
// sending was successful but some users might not have any email address
|
||||
OC.dialogs.alert(t('core', result.data.message), t('core', 'Email notification not sent'));
|
||||
}
|
||||
|
||||
$target.removeClass('hidden');
|
||||
$loading.addClass('hidden');
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
OC.Share.ShareDialogShareeListView = ShareDialogShareeListView;
|
||||
|
||||
})();
|
||||
Reference in New Issue
Block a user