fix(ext-links): warn in Party and PMs, env config

This commit is contained in:
SabreCat
2023-03-28 16:39:48 -05:00
parent ca1200b689
commit eb4e930e63
5 changed files with 13 additions and 12 deletions

View File

@@ -86,5 +86,6 @@
"RATE_LIMITER_ENABLED": "false",
"REDIS_HOST": "aaabbbcccdddeeefff",
"REDIS_PORT": "1234",
"REDIS_PASSWORD": "12345678"
"REDIS_PASSWORD": "12345678",
"TRUSTED_DOMAINS": "https://localhost,https://habitica.com"
}

View File

@@ -135,6 +135,7 @@ export default {
},
mounted () {
this.textbox = this.$refs['user-entry'];
this.handleExternalLinks();
},
updated () {
this.handleExternalLinks();

View File

@@ -139,6 +139,8 @@
import axios from 'axios';
import moment from 'moment';
import externalLinks from '../../mixins/externalLinks';
import renderWithMentions from '@/libs/renderWithMentions';
import { mapState } from '@/libs/store';
import userLink from '../userLink';
@@ -150,6 +152,7 @@ export default {
components: {
userLink,
},
mixins: [externalLinks],
filters: {
timeAgo (value) {
return moment(value).fromNow();
@@ -179,6 +182,10 @@ export default {
},
mounted () {
this.$emit('message-card-mounted');
this.handleExternalLinks();
},
updated () {
this.handleExternalLinks();
},
methods: {
report () {

View File

@@ -1,18 +1,9 @@
import some from 'lodash/some';
export default {
data () {
return {
trustedDomains: [
'https://habitica.com',
'http://localhost',
'https://tools.habitica.com',
'https://translate.habitica.com',
],
};
},
methods: {
handleExternalLinks () {
const { TRUSTED_DOMAINS } = process.env;
const allLinks = document.getElementsByTagName('a');
for (let i = 0; i < allLinks.length; i += 1) {
@@ -20,7 +11,7 @@ export default {
if ((link.classList.value.indexOf('external-link') === -1)
&& link.href.slice(0, 4) === 'http'
&& !some(this.trustedDomains, domain => link.href.indexOf(domain) === 0)) {
&& !some(TRUSTED_DOMAINS.split(','), domain => link.href.indexOf(domain) === 0)) {
link.classList.add('external-link');
link.addEventListener('click', e => {
if (e.ctrlKey) {

View File

@@ -27,6 +27,7 @@ const envVars = [
'APPLE_AUTH_CLIENT_ID',
'AMPLITUDE_KEY',
'LOGGLY_CLIENT_TOKEN',
'TRUSTED_DOMAINS',
// TODO necessary? if yes how not to mess up with vue cli? 'NODE_ENV'
];