Project

General

Profile

« Previous | Next » 

Revision acfbc458

Added by Marek Hulán about 10 years ago

fixes #812 - new permissions model, user group role and nest support, role filters for better granularity

Contributions from:

View differences:

test/functional/compute_resources_vms_controller_test.rb
# Fog.unmock!
end
def setup_user operation, type = 'compute_resources_vms'
super(operation, type, "id = #{@compute_resource.id}")
end
test "should not get index when not permitted" do
setup_user "none"
get :index, {:compute_resource_id => @compute_resource.to_param}, set_session_user
......
test "should not show vm JSON when restricted" do
setup_user "view"
get :show, {:id => @test_vm.uuid, :format => "json", :compute_resource_id => @your_compute_resource.to_param}, set_session_user
assert_response 403
assert_response 404
end
test "should show vm JSON" do
......
test "should not show vm when restricted" do
setup_user "view"
get :show, {:id => @test_vm.uuid, :compute_resource_id => @your_compute_resource.to_param}, set_session_user
assert_response 403
assert_response 404
end
test "should show vm" do
......
#Broken with Fog.mock! because lib/fog/libvirt/models/compute/volume.rb:41 calls create_volume with the wrong number of arguments
#Broken before Fog 8d95d5bff223a199d33e297ea21884d8598f6921 because default pool name being "default-pool" and not "default" (with test:///default) triggers an internal bug
def test_should_create_vm(name = "new_test")
setup_user "create"
setup_user "create" do |user|
user.roles.last.add_permissions! :view_compute_resources
end
assert_difference('@compute_resource.vms.count', +1) do
attrs = {:name => name, :memory => 128*1024*1024, :domain_type => "test", :arch => "i686"}
post :create, {:vm => attrs, :compute_resource_id => @compute_resource.to_param}, set_session_user
......
delete :destroy, {:format => "json", :id => @test_vm.uuid, :compute_resource_id => @your_compute_resource.to_param}, set_session_user
end
assert_response 403
assert_response 404
end
test "should destroy vm" do
......
setup_user "power"
get :power, {:format => "json", :id => @test_vm.uuid, :compute_resource_id => @your_compute_resource.to_param}, set_session_user
assert_response 403
assert_response 404
end
test "should pause openstack vm" do
......
SETTINGS[:login] ? {:user => User.current.id, :expires_at => 5.minutes.from_now} : {}
end
def setup_user operation
@one = users(:one)
@request.session[:user] = @one.id
as_admin do
@one.roles = [Role.find_by_name('Anonymous'), Role.find_by_name('Viewer')]
role = Role.find_or_create_by_name :name => "#{operation}_compute_resources_vms"
role.permissions = ["#{operation}_compute_resources_vms".to_sym]
role.save!
@one.roles << [role]
@one.compute_resources = [@compute_resource]
@one.save!
end
User.current = @one
end
end

Also available in: Unified diff