Skip to content

Commit 3cbaff0

Browse files
committed
fetch contacts groups directly from contacts
1 parent 5f3f704 commit 3cbaff0

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

lib/Thruk/Authentication/User.pm

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,8 @@ sub _fetch_user_data {
215215
my($can_submit_commands,$alias,$email);
216216
my $src_peers = [];
217217
confess("no db") unless $c->db();
218-
my $data = $c->db->get_can_submit_commands($self->{'username'});
218+
my $groups;
219+
my $data = $c->db->get_can_submit_commands($self->{'username'});
219220
if(defined $data) {
220221
for my $dat (@{$data}) {
221222
$alias = $dat->{'alias'} if defined $dat->{'alias'};
@@ -224,11 +225,16 @@ sub _fetch_user_data {
224225
$can_submit_commands = $dat->{'can_submit_commands'};
225226
push @{$src_peers} , $dat->{'peer_key'};
226227
}
228+
if(defined $dat->{'groups'}) {
229+
$groups = [] unless defined $groups;
230+
push(@{$groups}, @{$dat->{'groups'}});
231+
}
227232
}
228233
}
229234

230235
# add roles from groups in cgi.cfg
231-
my $groups = [sort keys %{$c->db->get_contactgroups_by_contact($self->{'username'})}];
236+
$groups = [sort keys %{$c->db->get_contactgroups_by_contact($self->{'username'})}] unless defined $groups;
237+
$groups = Thruk::Base::array_uniq($groups);
232238

233239
return($alias, $email, $can_submit_commands, $groups, $src_peers);
234240
}

lib/Thruk/Backend/Provider/Livestatus.pm

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -359,11 +359,13 @@ sub get_can_submit_commands {
359359
$options->{wrapped_json} = 1;
360360
}
361361

362+
my $columns = [qw/can_submit_commands alias email groups/];
363+
$columns = $self->_clean_columns("contacts", $columns);
364+
362365
$data = $self->_optimize(
363366
$self->{'live'}
364367
->table('contacts')
365-
->columns(qw/can_submit_commands
366-
alias email/)
368+
->columns(@{$columns})
367369
->filter({ name => $user })
368370
->options($options),
369371
)

0 commit comments

Comments
 (0)