mirror of
https://github.com/discourse/discourse.git
synced 2025-05-23 10:01:11 +08:00
FIX: composer should only feature links to external sites
This commit is contained in:
@ -54,6 +54,10 @@ export default Ember.Component.extend({
|
|||||||
if (!this.element || this.isDestroying || this.isDestroyed) { return; }
|
if (!this.element || this.isDestroying || this.isDestroyed) { return; }
|
||||||
|
|
||||||
if (this.get('isAbsoluteUrl') && (this.get('composer.reply')||"").length === 0) {
|
if (this.get('isAbsoluteUrl') && (this.get('composer.reply')||"").length === 0) {
|
||||||
|
|
||||||
|
// only feature links to external sites
|
||||||
|
if (this.get('composer.title').match(new RegExp("^https?:\\/\\/" + window.location.hostname, "i"))) { return; }
|
||||||
|
|
||||||
// Try to onebox. If success, update post body and title.
|
// Try to onebox. If success, update post body and title.
|
||||||
this.set('composer.loading', true);
|
this.set('composer.loading', true);
|
||||||
|
|
||||||
|
@ -40,3 +40,15 @@ test("no onebox result", () => {
|
|||||||
equal(find('.title-input input').val(), "http://www.example.com/nope-onebox.html", "title is unchanged");
|
equal(find('.title-input input').val(), "http://www.example.com/nope-onebox.html", "title is unchanged");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("ignore internal links", () => {
|
||||||
|
visit("/");
|
||||||
|
click('#create-topic');
|
||||||
|
const title = "http://" + window.location.hostname + "/internal-page.html";
|
||||||
|
fillIn('#reply-title', title);
|
||||||
|
andThen(() => {
|
||||||
|
equal(find('.d-editor-preview').html().trim().indexOf('onebox'), -1, "onebox preview doesn't show");
|
||||||
|
equal(find('.d-editor-input').val().length, 0, "link isn't put into the post");
|
||||||
|
equal(find('.title-input input').val(), title, "title is unchanged");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
@ -343,6 +343,14 @@ export default function() {
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (request.queryParams.url.indexOf('/internal-page.html') > -1) {
|
||||||
|
return [
|
||||||
|
200,
|
||||||
|
{"Content-Type": "application/html"},
|
||||||
|
'<aside class="onebox"><article class="onebox-body"><h3><a href="/internal-page.html">Internal Page 4 U</a></h3></article></aside>'
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
return [404, {"Content-Type": "application/html"}, ''];;
|
return [404, {"Content-Type": "application/html"}, ''];;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user