# a resource for managing selinux permissive contexts

property :allow_disabled, [true, false], default: true

# Create if doesn't exist, do not touch if port is already registered (even under different type)
action :add do
  execute "selinux-permissive-#{new_resource.name}-add" do
    command "#{semanage_cmd} permissive -a '#{new_resource.name}'"
    not_if  "#{semanage_cmd} permissive -l | grep  '^#{new_resource.name}$'"
    only_if { use_selinux(new_resource.allow_disabled) }
  end
end

# Delete if exists
action :delete do
  execute "selinux-port-#{new_resource.name}-delete" do
    command "#{semanage_cmd} permissive -d '#{new_resource.name}'"
    not_if  "#{semanage_cmd} permissive -l | grep  '^#{new_resource.name}$'"
    only_if { use_selinux(new_resource.allow_disabled) }
  end
end

action_class do
  include Chef::SELinuxPolicy::Helpers
end
