How to make "copyright" copy-protected content?


Many of our Member have quality topics, blog articles etc… Unfortunately others steal these (and make it public other sites as their own without any source) even if the author says clearly. “I only write it to this site please don’t steal it…If you want to use this content please contact me before.” We had to do something because our authors are simply discouraged from creating new quality contents. We don’t want to make the forum closed (private) because many visitor read these contents from outside the forum.

We know this is the internet and there is not a 100% solution to copyright content but we can make it harder or make it less easy to steal these contents. I know this looks like waste of time but many stealer give it up if a simple text selection and copy is not working.

What we do is use a copy-protected tag and reuse this Disable right click on image lightbox - #7 by awesomerobot

We add an option to every member to add a #copy-protected tag to the topics.
This tag has some features:

  • it disable right click (on the whole first post OP content .cooked class)
  • it disable copy and cut (on the whole first post OP content .cooked class)
  • for anons (non-registered visitors) it disable text selection (on the whole first post OP content .cooked class)
  • it add a copyright-protected note above the topic title section

1. Here is the code we use for this in header. When authors add copyright tag to the topic it will activate.

<script type="text/discourse-plugin" version="0.8">
const TopicRoute = require("discourse/routes/topic").default;

  activate: function() {
    this._super(); {
      // Disable right click
      $('.tag-copy-protected #post_1 .cooked').on('contextmenu', function(e) { return false; });
      // Disable copy and cut
      $('.tag-copy-protected #post_1 .cooked').bind('cut copy', function (e) { e.preventDefault(); });

2. For anons (non-registered visitors) we use an extra layer, disable text selection. We use CSS for this on common.

.anon {
  .tag-copy-protected {
    #post_1 .cooked {
      -webkit-user-select: none;
      -khtml-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      -o-user-select: none;
      user-select: none;

3. We add a little red notice above the topic title section too. Which says This content has been copyright-protected by the author!

.tag-copy-protected #topic-title .title-wrapper {
  &:before {
    content: 'This content has been copyright-protected by the author!';
    color: #e40202;

4. We use the prevent anons from downloading files site setting to only the Members can download files.

This is what we did to handle this problem. Our authors are happy with this solution and that we care about and appreciate them. :slightly_smiling_face: :heart: I hope this will help a bit and brings the expected result. :crossed_fingers:


Nice work!

Sounds like a great opportunity to package this up in a Theme Component?


Thanks Robert! :slightly_smiling_face:

Sure, a Theme Component is a great idea! I would be grateful if you could do it, of course if you want to and have some time for it :slightly_smiling_face:


I’d be delighted to help you. We can host and support it on Pavilion and I’ll give you and Awesomerobot credit as authors.

My current focus is on getting my plugins and TC’s Ember-CLI compability and a couple of bugs, but I can get to this next.

I’ll PM you for testing.

Perhaps we can add some settings at some point if switching things on and off is useful? Perhaps we can add a setting to select the specific tag etc.

There may be others who find this useful as a TC (@davidkingham ?)


It’s a great idea to have this as a TC for others to use, I really don’t need the extra features beyond the right click protection that I already have though.