Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
UseraccountByRoleList
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 1
30
0.00% covered (danger)
0.00%
0 / 1
 readResponse
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 1
30
1<?php
2
3/**
4 * @package ZMS API
5 * @copyright BerlinOnline Stadtportal GmbH & Co. KG
6 **/
7
8namespace BO\Zmsapi;
9
10use BO\Mellon\Validator;
11use BO\Slim\Render;
12use BO\Zmsdb\Useraccount;
13use BO\Zmsentities\Collection\UseraccountList as Collection;
14use Psr\Http\Message\RequestInterface;
15use Psr\Http\Message\ResponseInterface;
16
17class UseraccountByRoleList extends BaseController
18{
19    /**
20     * @SuppressWarnings(Param)
21     * @return String
22     */
23    public function readResponse(
24        RequestInterface $request,
25        ResponseInterface $response,
26        array $args
27    ) {
28        $roleLevel = $args['level'];
29        $workstation = (new Helper\User($request, 2))->checkRights('useraccount');
30        $resolveReferences = Validator::param('resolveReferences')->isNumber()->setDefault(1)->getValue();
31
32        /** @var Useraccount $useraccount */
33        $useraccountList = new Collection();
34        $useraccountList = (new Useraccount())->readListRole($roleLevel, $resolveReferences)->withLessData();
35        $useraccountList = $useraccountList->withAccessByWorkstation($workstation);
36
37        if (! $useraccountList or count($useraccountList) === 0) {
38            throw new \BO\Zmsapi\Exception\Useraccount\UserRoleNotFound();
39        }
40
41        $validUserAccounts = [];
42        foreach ($useraccountList as $useraccount) {
43            try {
44                Helper\User::testWorkstationAccessRights($useraccount);
45                $validUserAccounts[] = $useraccount;
46            } catch (\BO\Zmsentities\Exception\UserAccountAccessRightsFailed $e) {
47                continue;
48            }
49        }
50        $useraccountList = $validUserAccounts;
51
52        $message = Response\Message::create($request);
53        $message->data = $useraccountList;
54
55        $response = Render::withLastModified($response, time(), '0');
56        return Render::withJson($response, $message, 200);
57    }
58}