my $users = $self->new_instance_of("Users");
my $user_sidebar = $self->select(uid => $uid);
- if (!$user_sidebar) {
+ if (!$user_sidebar || @$user_sidebar == 0) {
$user_sidebar = $self->select(uid => $users->anonymous_user->{uid});
}
}
elsif ($type eq 'sidebar') {
my $rs = $users->sidebar->select(uid => $uid);
- if ($rs) {
- $c->render(json => { items => $rs->{items} });
+ if ($rs && @$rs) {
+ $c->render(json => { items => $rs });
return;
}
# fallback
$rs = $users->sidebar->select(uid => $users->anonymous_user->{uid});
if ($rs) {
- $c->render(json => { items => $rs->{items} });
+ $c->render(json => { items => $rs });
return;
}
$c->render(json => { items => [] });
subtest 'get users info' => sub {
$test_man->login($user);
+ # config
$t->get_ok('/api/v1/user?type=config')
->status_is(200)
->content_type_like(qr|application/json|)
->json_has('/config')
->or(sub {diag "message: " . dumper($t->tx->res->json);});
+ # message_config
$t->get_ok('/api/v1/user?type=message_config')
+ ->status_is(200)
->content_type_like(qr|application/json|)
->json_has('/config')
->or(sub {diag "message: " . dumper($t->tx->res->json);});
+ # sidebar
+ $t->get_ok('/api/v1/user?type=sidebar')
+ ->status_is(200)
+ ->content_type_like(qr|application/json|)
+ ->json_has('/items')
+ ->or(sub {diag "message: " . dumper($t->tx->res->json);});
+
+ # all
+ # type=all need admin privileges
+ $t->get_ok('/api/v1/user?type=all')
+ ->status_is(403);
+
$test_man->logout;
};