Skip to content

Commit 48494ad

Browse files
committed
Only constantize allow-listed invitation types for permitted_params when creating platform invitations
1 parent 6e4c92f commit 48494ad

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

app/controllers/better_together/platform_invitations_controller.rb

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,16 @@ def platform_invitation_params
116116
params.require(:platform_invitation).permit(
117117
:invitee_email, :platform_role_id, :community_role_id, :locale,
118118
:valid_from, :valid_until, :greeting, :type, :session_duration_mins,
119-
*params[:platform_invitation][:type].constantize.permitted_attributes
119+
*param_invitation_class.permitted_attributes
120120
)
121121
end
122+
123+
def param_invitation_class
124+
param_type = params[:platform_invitation][:type]
125+
126+
Rails.application.eager_load! if Rails.env.development? # Ensure all models are loaded
127+
valid_types = [ BetterTogether::PlatformInvitation, *BetterTogether::PlatformInvitation.descendants ].map(&:to_s)
128+
invitation_type = param_type.constantize if valid_types.include?(param_type)
129+
end
122130
end
123131
end

0 commit comments

Comments
 (0)