diff --git a/app/models/role.rb b/app/models/role.rb
index 9a9797ceaa545174bf97ded84a843df1854a9f80..cfca39dabe6eeebef6f979abc706df1a85db1220 100644
--- a/app/models/role.rb
+++ b/app/models/role.rb
@@ -29,4 +29,8 @@ class Role < ApplicationRecord
   def self.curator
     find_by(name: 'curator') || create!(name: 'curator')
   end
+
+  def self.moderator
+    find_by(name: 'moderator') || create!(name: 'moderator')
+  end
 end
diff --git a/app/models/user.rb b/app/models/user.rb
index a68598c89afae37d02363749e9d3cf099514464c..31bf89b26dd91c2b2f1d841e8e0233f0bdf94a03 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -100,6 +100,17 @@ class User < ApplicationRecord
     false
   end
 
+  def is_moderator?
+    roles.each do |role|
+      return true if role.name == 'moderator'
+    end
+    false
+  end
+
+  def can_moderate?
+    self.is_admin? || self.is_moderator?
+  end
+
   def associated_collections
     c = collections.blank? ? [] : collections.to_a
     institutions.each { |i| c.push(*i.collections.to_a) }
diff --git a/db/seeds.rb b/db/seeds.rb
index 785a3bb76dff904dad91bd36d3402903fc6dc368..0a4ba3ef41205d37cb528b959212f029f5151c89 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -9,6 +9,7 @@ Role.create(name: 'teacher', description: 'This role represents a Teacher in Por
 Role.create(name: 'student', description: 'This role represents a Student in Portal MEC.')
 Role.create(name: 'admin', description: 'This role represents an MEC Admin, that can perform any action.')
 Role.create(name: 'curator', description: 'This role represents a content Curator in Portal MEC.')
+Role.create(name: 'moderator', description: 'This role represents a content Moderator in Portal MEC, with less privileges than admin.')
 
 # create the default admin
 User.create(
diff --git a/lib/portalmec/sociable_tests.rb b/lib/portalmec/sociable_tests.rb
index b7dbc33010ee5f050b29f0f485512594efc0c913..822eff0d8b9c7a83d9ecb43f5e579b2f01cbd1e2 100644
--- a/lib/portalmec/sociable_tests.rb
+++ b/lib/portalmec/sociable_tests.rb
@@ -1,3 +1,5 @@
+require 'active_support'
+
 module Portalmec::SociableTests
   extend ActiveSupport::Testing::Declarative