Files
fizzy/app/models/project/accessible.rb
T
2024-09-18 17:25:09 -04:00

24 lines
477 B
Ruby

module Project::Accessible
extend ActiveSupport::Concern
included do
has_many :accesses, dependent: :destroy
has_many :users, through: :accesses
after_create -> { grant_access(creator) }
end
def update_access(users)
transaction do
grant_access(users)
accesses.where.not(user: Array(users)).delete_all
end
end
def grant_access(users)
Array(users).each do |user|
accesses.create_or_find_by!(user: user)
end
end
end