This commit is contained in:
the-djmaze 2023-02-10 09:55:52 +01:00
parent f05ff65b30
commit 31dd1b74b8
42 changed files with 29 additions and 65 deletions

View file

@ -300,9 +300,7 @@ export class MessageModel extends AbstractModel {
body.classList.toggle('plain', 0);
if (!this.isSpam() && FolderUserStore.spamFolder() != this.folder) {
if (('dkim' === SettingsUserStore.viewImages() && 'pass' === this.dkim[0]?.[0])
|| 'always' === SettingsUserStore.viewImages()
) {
if ('always' === SettingsUserStore.viewImages()) {
this.showExternalImages();
}
if ('match' === SettingsUserStore.viewImages()) {
@ -399,11 +397,19 @@ export class MessageModel extends AbstractModel {
const body = this.body;
if (body && this.hasImages()) {
if (regex) {
regex = SettingsUserStore.viewImagesWhitelist()
.trim()
.replace(/[/\-\\^$*+?.()|[\]{}]/g, '\\$&')
.replace(/[\s\r\n,;]+/g, '|')
.replace(/\|+/g, '|');
regex = [];
SettingsUserStore.viewImagesWhitelist().trim().split(/[\s\r\n,;]+/g).forEach(rule => {
rule = rule.split('+');
rule[0] = rule[0].trim();
if (rule[0]
&& (!rule.includes('spf') || 'pass' === this.spf[0]?.[0])
&& (!rule.includes('dkim') || 'pass' === this.dkim[0]?.[0])
&& (!rule.includes('dmarc') || 'pass' === this.dmarc[0]?.[0])
) {
regex.push(rule[0].replace(/[/\-\\^$*+?.()|[\]{}]/g, '\\$&'));
}
});
regex = regex.join('|').replace(/\|+/g, '|');
if (regex) {
console.log('whitelist images = '+regex);
regex = new RegExp(regex);

View file

@ -112,8 +112,7 @@ export class MailMessageView extends AbstractViewRight {
// viewer
viewFromShort: '',
viewFromDkimData: ['none', ''],
viewToShort: ''
dkimData: ['none', '', '']
});
this.moveAction = moveAction;
@ -171,10 +170,10 @@ export class MailMessageView extends AbstractViewRight {
canBeRepliedOrForwarded: () => !MessagelistUserStore.isDraftFolder() && this.messageVisibility(),
viewFromDkimVisibility: () => 'none' !== this.viewFromDkimData()[0],
viewDkimIcon: () => 'none' !== this.dkimData()[0],
viewFromDkimStatusIconClass:() => {
switch (this.viewFromDkimData()[0]) {
dkimIconClass:() => {
switch (this.dkimData()[0]) {
case 'none':
return '';
case 'pass':
@ -184,13 +183,9 @@ export class MailMessageView extends AbstractViewRight {
}
},
viewFromDkimStatusTitle:() => {
const status = this.viewFromDkimData();
if (arrayLength(status) && status[0]) {
return status[1] || 'DKIM: ' + status[0];
}
return '';
dkimTitle:() => {
const dkim = this.dkimData();
return dkim[0] ? dkim[2] || 'DKIM: ' + dkim[0] : '';
},
showWhitelistOptions: () => 'match' === SettingsUserStore.viewImages(),
@ -212,10 +207,7 @@ export class MailMessageView extends AbstractViewRight {
this.viewHash = message.hash;
// TODO: make first param a user setting #683
this.viewFromShort(message.from.toString(false, true));
let dkim = 1 === arrayLength(message.from) && message.dkim
&& message.dkim.find(dkim => message.from[0].email.includes(dkim[1]));
this.viewFromDkimData(dkim ? [dkim[0], dkim[2]] : ['none', '']);
this.viewToShort(message.to.toString(true, true));
this.dkimData(message.dkim[0] || ['none', '', '']);
} else {
MessagelistUserStore.selectedMessage(null);
@ -503,6 +495,11 @@ export class MailMessageView extends AbstractViewRight {
whitelistText(txt) {
let value = (SettingsUserStore.viewImagesWhitelist().trim() + '\n' + txt).trim();
/*
if ('pass' === currentMessage().spf[0]?.[0]) value += '+spf';
if ('pass' === currentMessage().dkim[0]?.[0]) value += '+dkim';
if ('pass' === currentMessage().dmarc[0]?.[0]) value += '+dmarc';
*/
SettingsUserStore.viewImagesWhitelist(value);
Remote.saveSetting('ViewImagesWhitelist', value);
currentMessage().showExternalImages(1);

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "Images externes",
"IMAGES_OPTION_ASK": "Toujours demander",
"IMAGES_OPTION_WHITELIST": "Ajouter à la liste blanche ou demander",
"IMAGES_OPTION_DKIM": "Toujours afficher quand DKIM est valide",
"IMAGES_OPTION_ALWAYS": "Toujours afficher",
"IMAGES_WHITELIST": "Liste blanche Images"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "Imagens externas",
"IMAGES_OPTION_ASK": "Perguntar sempre",
"IMAGES_OPTION_WHITELIST": "Lista Branca ou perguntar",
"IMAGES_OPTION_DKIM": "Mostrar sempre que DKIM for válido",
"IMAGES_OPTION_ALWAYS": "Mostrar sempre",
"IMAGES_WHITELIST": "Lista Branca de imagens"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "Imagens externas",
"IMAGES_OPTION_ASK": "Perguntar sempre",
"IMAGES_OPTION_WHITELIST": "Lista Branca ou perguntar",
"IMAGES_OPTION_DKIM": "Mostrar sempre que DKIM for válido",
"IMAGES_OPTION_ALWAYS": "Mostrar sempre",
"IMAGES_WHITELIST": "Lista Branca de imagens"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -421,7 +421,6 @@
"EXTERNAL_IMAGES": "External images",
"IMAGES_OPTION_ASK": "Always ask",
"IMAGES_OPTION_WHITELIST": "Whitelist or ask",
"IMAGES_OPTION_DKIM": "Show always when DKIM is valid",
"IMAGES_OPTION_ALWAYS": "Show always",
"IMAGES_WHITELIST": "Images whitelist"
},

View file

@ -130,14 +130,14 @@
</div>
<div class="informationShort" data-bind="hidden: showFullInfo">
<span class="from" data-bind="html: viewFromShort, title: message().from"></span>
<i data-bind="visible: viewFromDkimVisibility, css: viewFromDkimStatusIconClass, title: viewFromDkimStatusTitle"></i>
<i data-bind="visible: viewDkimIcon, css: dkimIconClass, title: dkimTitle"></i>
</div>
<div class="informationFull" data-bind="visible: showFullInfo, with: message">
<table>
<tr data-bind="visible: from.length">
<td data-i18n="GLOBAL/FROM"></td>
<td><span data-bind="text: from"></span>
<i data-bind="visible: $parent.viewFromDkimVisibility, css: $parent.viewFromDkimStatusIconClass, title: $parent.viewFromDkimStatusTitle"></i>
<i data-bind="visible: $parent.viewDkimIcon, css: $parent.dkimIconClass, title: $parent.dkimTitle"></i>
</td>
</tr>
<tr data-bind="visible: to.length">

View file

@ -231,7 +231,6 @@
<select data-bind="value: viewImages">
<option value="ask" data-i18n="SETTINGS_GENERAL/IMAGES_OPTION_ASK"></option>
<option value="match" data-i18n="SETTINGS_GENERAL/IMAGES_OPTION_WHITELIST"></option>
<option value="dkim" data-i18n="SETTINGS_GENERAL/IMAGES_OPTION_DKIM"></option>
<option value="always" data-i18n="SETTINGS_GENERAL/IMAGES_OPTION_ALWAYS"></option>
</select>
</div>