Skip to content
Snippets Groups Projects
Commit 0ce9ffb1 authored by Alexander Olofsson's avatar Alexander Olofsson
Browse files

Add permissions for WDS server access

parent 6ff645dd
No related branches found
No related tags found
No related merge requests found
......@@ -14,5 +14,14 @@ module ForemanWds
super(top_level_hash)
end
def action_permission
case params[:action]
when 'wds_server_selected', 'wds_image_selected'
:edit
else
super
end
end
end
end
......@@ -77,4 +77,15 @@ class WdsServersController < ::ApplicationController
def find_server
@wds_server = WdsServer.find(params[:id])
end
def action_permission
case params[:action]
when 'wds_clients', 'wds_images'
:view
when 'test_connection', 'refresh_cache', 'delete_wds_client'
:edit
else
super
end
end
end
......@@ -17,6 +17,33 @@ module ForemanWds
Foreman::Plugin.register :foreman_wds do
requires_foreman '>= 1.16'
security_block :foreman_wds do
permission :view_wds_servers, {
wds_servers: %i[index show auto_complete_search wds_clients wds_images]
}, resource_type: 'WdsServer'
permission :create_wds_servers, {
wds_servers: %i[create new]
}, resource_type: 'WdsServer'
permission :edit_wds_servers, {
wds_servers: %i[edit update test_connection refresh_cache delete_wds_client]
}, resource_type: 'WdsServer'
permission :destroy_wds_servers, {
wds_servers: %i[destroy]
}, resource_type: 'WdsServer'
# permission :edit_hosts, {
# hosts: %i[wds_server_selected wds_image_selected]
# }, resource_type: 'Host'
end
Foreman::AccessControl.permissions(:edit_hosts).actions.concat [
'hosts/wds_server_selected', 'hosts/wds_image_selected'
]
role 'WDS Server Manager', %i[view_wds_servers create_wds_servers edit_wds_servers destroy_wds_servers]
add_all_permissions_to_default_roles
# add menu entry
menu :top_menu, :wds_servers,
url_hash: { controller: :wds_servers, action: :index },
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment