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", "RATE_LIMITER_ENABLED": "false",
"REDIS_HOST": "aaabbbcccdddeeefff", "REDIS_HOST": "aaabbbcccdddeeefff",
"REDIS_PORT": "1234", "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 () { mounted () {
this.textbox = this.$refs['user-entry']; this.textbox = this.$refs['user-entry'];
this.handleExternalLinks();
}, },
updated () { updated () {
this.handleExternalLinks(); this.handleExternalLinks();

View File

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

View File

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

View File

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