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