7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/storytime/concerns/storytime_user.rb', line 7
def storytime_user
has_many :storytime_memberships, class_name: "::Storytime::Membership", dependent: :destroy
has_many :storytime_roles, through: :storytime_memberships
has_many :storytime_sites, through: :storytime_memberships, source: :site
has_many :storytime_posts, class_name: "Storytime::Post"
has_many :storytime_pages, class_name: "Storytime::Page"
has_many :storytime_media, class_name: "Storytime::Media"
has_many :storytime_versions, class_name: "Storytime::Version"
has_many :storytime_comments, class_name: "Storytime::Comment"
accepts_nested_attributes_for :storytime_memberships, allow_destroy: true
scope :non_members, ->(site) { all.reject{|user| user.storytime_user?(site)} }
include Storytime::Concerns::StorytimeUser::LocalInstanceMethods
class_eval <<-EOS
def self.policy_class
UserPolicy
end
EOS
%w{admin editor writer}.each do |role_name|
class_eval <<-EOS
def storytime_#{role_name}?(site)
role = storytime_role_in_site(site)
role && role.name == "#{role_name}"
end
EOS
end
end
|