Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
94.74% covered (success)
94.74%
36 / 38
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
UseraccountList
94.74% covered (success)
94.74%
36 / 38
0.00% covered (danger)
0.00%
0 / 1
8.01
0.00% covered (danger)
0.00%
0 / 1
 readResponse
94.74% covered (success)
94.74%
36 / 38
0.00% covered (danger)
0.00%
0 / 1
8.01
1<?php
2
3/**
4 *
5 * @package Zmsadmin
6 * @copyright BerlinOnline Stadtportal GmbH & Co. KG
7 *
8 */
9
10namespace BO\Zmsadmin;
11
12use BO\Zmsentities\Collection\UseraccountList as Collection;
13use BO\Zmsentities\Exception\UserAccountMissingRights;
14use Psr\Http\Message\RequestInterface;
15use Psr\Http\Message\ResponseInterface;
16
17class UseraccountList extends BaseController
18{
19    /**
20     * @SuppressWarnings(Param)
21     * @return ResponseInterface
22     */
23    public function readResponse(
24        RequestInterface $request,
25        ResponseInterface $response,
26        array $args
27    ) {
28        $workstation = \App::$http->readGetResult('/workstation/', ['resolveReferences' => 1])->getEntity();
29        if (! $workstation->getUseraccount()->hasPermissions(['useraccount'])) {
30            throw new UserAccountMissingRights();
31        }
32
33        $ownerList = \App::$http->readGetResult('/owner/', array('resolveReferences' => 2))->getCollection();
34        $validator = $request->getAttribute('validator');
35        $success = $validator->getParameter('success')->isString()->getValue();
36        $queryString = $validator->getParameter('query')
37            ->isString()
38            ->getValue();
39
40        $useraccountList = new Collection();
41        if ($workstation->hasSuperUseraccount()) {
42            $params = ["resolveReferences" => 0];
43            if ($queryString !== null && $queryString !== '') {
44                $params['query'] = $queryString;
45            }
46            $useraccountList = \App::$http->readGetResult("/useraccount/", $params)->getCollection();
47        } else {
48            $workstation = \App::$http->readGetResult('/workstation/', ['resolveReferences' => 2])->getEntity();
49            $departmentList = $workstation->getUseraccount()->getDepartmentList();
50            $departmentListIds = $departmentList->getIds();
51
52            if (!empty($departmentListIds)) {
53                $params = ['resolveReferences' => 0];
54                if ($queryString !== null && $queryString !== '') {
55                    $params['query'] = $queryString;
56                }
57                $useraccountList = \App::$http
58                    ->readGetResult('/department/' . implode(',', $departmentListIds) . '/useraccount/', $params)
59                    ->getCollection();
60            }
61        }
62
63        return \BO\Slim\Render::withHtml(
64            $response,
65            'page/useraccountList.twig',
66            array(
67                'title' => 'Nutzer',
68                'menuActive' => 'useraccount',
69                'workstation' => $workstation,
70                'useraccountList' => $useraccountList,
71                'searchUserQuery' => $queryString,
72                'ownerlist' => $ownerList,
73                'success' => $success,
74            )
75        );
76    }
77}