2017-09-05 22:23:34 +03:00
|
|
|
class Role < ApplicationRecord
|
2014-08-12 11:51:59 +03:00
|
|
|
belongs_to :resource, polymorphic: true
|
2016-05-24 23:54:46 +05:30
|
|
|
has_many :users_roles
|
|
|
|
|
has_many :users, through: :users_roles
|
|
|
|
|
|
2016-08-17 02:45:10 +05:30
|
|
|
has_paper_trail on: [:create, :update], only: [:name, :description], meta: { conference_id: :resource_id }
|
2016-05-24 23:54:46 +05:30
|
|
|
|
2016-03-11 20:44:09 +05:30
|
|
|
before_destroy :cancel
|
2014-08-12 11:51:59 +03:00
|
|
|
scopify
|
|
|
|
|
|
2015-01-12 23:13:10 +02:00
|
|
|
validates :name, presence: true
|
|
|
|
|
|
|
|
|
|
validates :name, uniqueness: { scope: :resource }
|
2016-03-11 20:44:09 +05:30
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
|
|
# Needed to ensure that removing all user from role doesn't remove role.
|
|
|
|
|
def cancel
|
|
|
|
|
false
|
|
|
|
|
end
|
2014-06-30 17:07:53 +02:00
|
|
|
end
|