From 3a3c8817358c3487886ce272c58ac359fa51cb37 Mon Sep 17 00:00:00 2001 From: zaziemo Date: Thu, 20 Aug 2015 16:22:54 +0200 Subject: [PATCH] add new role moderator analogue to admin role #5324 --- app/models/role.rb | 8 ++++++-- spec/models/role_spec.rb | 7 +++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/models/role.rb b/app/models/role.rb index dafc33f37..3f53af442 100644 --- a/app/models/role.rb +++ b/app/models/role.rb @@ -1,11 +1,11 @@ -#NOTE add the person object you want to attach role to... +# NOTE add the person object you want to attach role to... class Role < ActiveRecord::Base belongs_to :person validates :person, presence: true validates :name, uniqueness: {scope: :person_id} - validates :name, inclusion: {in: %w(admin spotlight)} + validates :name, inclusion: {in: %w(admin moderator spotlight)} scope :admins, -> { where(name: "admin") } @@ -17,6 +17,10 @@ class Role < ActiveRecord::Base find_or_create_by(person_id: person.id, name: "admin") end + def self.add_moderator(person) + find_or_create_by(person_id: person.id, name: "moderator") + end + def self.add_spotlight(person) find_or_create_by(person_id: person.id, name: "spotlight") end diff --git a/spec/models/role_spec.rb b/spec/models/role_spec.rb index 82a95a8ff..06225ab5d 100644 --- a/spec/models/role_spec.rb +++ b/spec/models/role_spec.rb @@ -45,6 +45,13 @@ describe Role do end end + describe ".add_moderator" do + it "creates the moderator role" do + Role.add_moderator(person) + expect(person.roles.where(name: "moderator")).to exist + end + end + describe ".add_spotlight" do it "creates the spotlight role" do Role.add_spotlight(person)