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