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
|
# File 'app/controllers/concerns/permittable.rb', line 8
def find_caber_subjects
params.values.each do |param|
if param.is_a?(ActionController::Parameters) && param.has_key?("caber_relations_attributes")
param["caber_relations_attributes"].transform_values! do |value|
if value["subject"].present?
subject = case value["subject"]
when "role::member"
Role.find_by!(name: :member)
when "role::public"
nil
when Group::TYPED_ID_PATTERN
Group.find_by_typed_id(value["subject"], scope: policy_scope(Group))
else
User.match!(identifier: value["subject"], scope: policy_scope(User))
end
value["subject_id"] = subject&.id
value["subject_type"] = subject&.class&.name
end
value
rescue ActiveRecord::RecordNotFound
nil
end
param["caber_relations_attributes"].compact!
end
end
end
|