Must encrypt with the sender key

This commit is contained in:
Carles Escrig Royo 2016-04-07 14:07:19 +02:00
parent a34da5de0d
commit 44dfa53cde
No known key found for this signature in database
GPG key ID: 5E6F07C704111773
7 changed files with 41 additions and 14 deletions

View file

@ -201,7 +201,19 @@
*/
MessageModel.prototype.getRecipientsEmails = function ()
{
return _.compact(_.uniq(_.map(this.to.concat(this.cc), function (oItem) {
return this.getEmails(['to', 'cc']);
};
/**
* @param {Array} aProperties
* @return {Array}
*/
MessageModel.prototype.getEmails = function (aProperties)
{
var self = this;
return _.compact(_.uniq(_.map(_.reduce(aProperties, function (aCarry, sProperty) {
return aCarry.concat(self[sProperty]);
}, []), function (oItem) {
return oItem ? oItem.email : '';
})));
};
@ -1033,4 +1045,4 @@
module.exports = MessageModel;
}());
}());

View file

@ -292,7 +292,7 @@
bEncrypted = mDom.hasClass('encrypted'),
bSigned = mDom.hasClass('signed'),
oVerControl = null,
aRecipients = oRainLoopMessage ? oRainLoopMessage.getRecipientsEmails() : [],
aRecipients = oRainLoopMessage ? oRainLoopMessage.getEmails(['from', 'to', 'cc']) : [],
sData = ''
;

View file

@ -62,6 +62,10 @@
&-delete {
cursor: pointer;
&.disabled {
cursor: not-allowed;
}
}
&-names {
@ -121,14 +125,14 @@
&__name {
border-bottom: 1px solid transparent;
&:hover {
border-bottom: 1px dashed #555;
}
}
&__names {
display: inline-block;
&:hover .key-list__item__name {
border-bottom: 1px dashed #555;
}
}
}
}

View file

@ -7,6 +7,11 @@
line-height: 17px;
font-size: 16px;
vertical-align: text-top;
&.disabled,
.disabled & {
color: grey;
}
}
.icon-folder, .icon-folder-add, .icon-list {

View file

@ -248,6 +248,7 @@
aKeys.push({
'empty': !oOption.key,
'selected': ko.observable(!!oOption.key),
'removable': this.signKey().id !== oOption.key.id,
'users': oOption.key.users,
'hash': oOption.key.id.substr(-8).toUpperCase(),
'key': oOption.key
@ -372,6 +373,7 @@
if (oIdentity && oIdentity.email())
{
sEmail = oIdentity.email();
aRec.unshift(sEmail);
oKey = PgpStore.findPrivateKeyByEmailNotNative(sEmail);
if (oKey)
{
@ -390,16 +392,19 @@
if (aRec && 0 < aRec.length)
{
this.encryptKeys(_.compact(_.map(aRec, function (sEmail) {
this.encryptKeys(_.uniq(_.compact(_.map(aRec, function (sEmail) {
var oKey = PgpStore.findPublicKeyByEmailNotNative(sEmail) || null;
return {
'empty': !oKey,
'selected': ko.observable(!!oKey),
'removable': oIdentity && oIdentity.email() && oIdentity.email() !== sEmail,
'users': oKey ? (oKey.users || [sEmail]) : [sEmail],
'hash': oKey ? oKey.id.substr(-8).toUpperCase() : '',
'key': oKey
};
})));
})), function (oEncryptKey) {
return oEncryptKey.hash;
}));
if (0 < this.encryptKeys().length)
{