Allow filtering the rules to make finding them easy
This commit is contained in:
@@ -10,9 +10,22 @@ class RulesController < ApplicationController
|
||||
|
||||
# GET /rules
|
||||
def index
|
||||
@pagy, @rules = pagy(policy_scope(Rule).includes(:user, :network_range).order(created_at: :desc))
|
||||
# Start with base scope
|
||||
rules = policy_scope(Rule).includes(:user, :network_range)
|
||||
|
||||
# Apply status filter
|
||||
rules = apply_status_filter(rules)
|
||||
|
||||
# Order by creation date (newest first)
|
||||
rules = rules.order(created_at: :desc)
|
||||
|
||||
# Paginate results
|
||||
@pagy, @rules = pagy(rules)
|
||||
|
||||
# Load filter options for view
|
||||
@waf_rule_types = Rule.waf_rule_types
|
||||
@waf_actions = Rule.waf_actions
|
||||
@current_status = params[:status] || 'all'
|
||||
end
|
||||
|
||||
# GET /rules/new
|
||||
@@ -117,6 +130,21 @@ class RulesController < ApplicationController
|
||||
|
||||
private
|
||||
|
||||
def apply_status_filter(rules)
|
||||
case params[:status]
|
||||
when 'enabled'
|
||||
rules.enabled
|
||||
when 'disabled'
|
||||
rules.disabled
|
||||
when 'active'
|
||||
rules.active
|
||||
when 'expired'
|
||||
rules.expired
|
||||
else
|
||||
rules # 'all' or no filter
|
||||
end
|
||||
end
|
||||
|
||||
def set_rule
|
||||
@rule = Rule.find(params[:id])
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user