Files
ubicloud/routes/project/location/firewall/firewall_rule.rb
Jeremy Evans d10bfc7af9 Remove unnecessary route nesting or true matchers
For routes inside r.is blocks, a fully routed path has
already been checked, so a true argument is not needed.
2025-06-20 05:14:52 +09:00

43 lines
1.2 KiB
Ruby

# frozen_string_literal: true
class Clover
hash_branch(:project_location_firewall_prefix, "firewall-rule") do |r|
# This is api-only, but is only called from an r.on api? branch, so no check is needed here
r.post true do
authorize("Firewall:edit", @firewall.id)
parsed_cidr = Validation.validate_cidr(typecast_params.str!("cidr"))
port_range = Validation.validate_port_range(typecast_params.str("port_range"))
pg_range = Sequel.pg_range(port_range.first..port_range.last)
firewall_rule = nil
DB.transaction do
firewall_rule = @firewall.insert_firewall_rule(parsed_cidr.to_s, pg_range)
audit_log(firewall_rule, "create")
end
Serializers::FirewallRule.serialize(firewall_rule)
end
r.is :ubid_uuid do |id|
firewall_rule = @firewall.firewall_rules_dataset[id:]
check_found_object(firewall_rule)
r.delete do
authorize("Firewall:edit", @firewall.id)
DB.transaction do
@firewall.remove_firewall_rule(firewall_rule)
audit_log(firewall_rule, "destroy")
end
204
end
r.get do
authorize("Firewall:view", @firewall.id)
Serializers::FirewallRule.serialize(firewall_rule)
end
end
end
end