package OVH::Bastion; # vim: set filetype=perl ts=4 sw=4 sts=4 et: use common::sense; my $_mocking_enabled = 0; my $_mock_data; sub enable_mocking { $_mocking_enabled = 1; return; } sub is_mocking { return $_mocking_enabled; } sub set_mock_data { die "tried to set_mock_data without enabling mocking first" unless is_mocking(); $_mock_data = shift; return; } sub mock_get_account_entry { my %params = @_; my $account = $params{'account'}; die "tried to mock without enabling mocking first" unless is_mocking(); my $h = $_mock_data->{'accounts'}{$account}; return () if !$h; return ($account, "x", $h->{'uid'}, $h->{'gid'}, $h->{'gecos'}, "/home/$account", $OVH::Bastion::BASEPATH . "/bin/shell/osh.pl"); } sub mock_get_account_accesses { my %params = @_; my $account = $params{'account'}; die "tried to mock without enabling mocking first" unless is_mocking(); return split /:/, $_mock_data->{'accounts'}{$account}{'accesses'}; } sub mock_get_account_personal_accesses { my %params = @_; my $account = $params{'account'}; die "tried to mock without enabling mocking first" unless is_mocking(); return $_mock_data->{'accounts'}{$account}{'personal_accesses'}; } sub mock_get_account_legacy_accesses { my %params = @_; my $account = $params{'account'}; die "tried to mock without enabling mocking first" unless is_mocking(); return $_mock_data->{'accounts'}{$account}{'legacy_accesses'}; } sub mock_get_group_accesses { my %params = @_; my $group = $params{'group'}; die "tried to mock without enabling mocking first" unless is_mocking(); return $_mock_data->{'groups'}{$group}{'accesses'}; } sub mock_get_account_guest_accesses { my %params = @_; my $group = $params{'group'}; my $account = $params{'account'}; die "tried to mock without enabling mocking first" unless is_mocking(); return $_mock_data->{'account'}{$account}{'guest_accesses'}{$group}; } 1;