ILIAS  trunk Revision v12.0_alpha-1540-g00f839d5fa1
ILIAS\MyStaff\ListCertificates\ilMStListCertificates Class Reference

Class ilMStListCertificates. More...

+ Collaboration diagram for ILIAS\MyStaff\ListCertificates\ilMStListCertificates:

Public Member Functions

 __construct (Container $dic)
 ilMStListCertificates constructor. More...
 
 getData (array $options=array())
 

Protected Attributes

Container $dic
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ILIAS\MyStaff\ListCertificates\ilMStListCertificates::__construct ( Container  $dic)

Member Function Documentation

◆ getData()

ILIAS\MyStaff\ListCertificates\ilMStListCertificates::getData ( array  $options = array())
final
Returns
UserCertificateDto[]

Definition at line 52 of file class.ilMStListCertificates.php.

52 : array
53 {
54 //Permission Filter
56
57 $_options = array(
58 'filters' => array(),
59 'sort' => array(),
60 'limit' => array(),
61 );
62 $options = array_merge($_options, $options);
63
64 $cert_api = new UserCertificateAPI();
65
66 $data = [];
67 $users_per_position = ilMyStaffAccess::getInstance()->getUsersForUserPerPosition($this->dic->user()->getId());
68 foreach ($users_per_position as $position_id => $users) {
69 if (empty($users)) {
70 continue;
71 }
72 $usr_data_filter = new UserDataFilter();
73 $usr_data_filter = $usr_data_filter->withUserIds($users);
74 $usr_data_filter = $usr_data_filter->withObjIds(ilMyStaffAccess::getInstance()->getIdsForUserAndOperation(
75 $this->dic->user()->getId(),
76 $operation_access
77 ));
78
79 if (!empty($options['filters']['user'])) {
80 $usr_data_filter = $usr_data_filter->withUserIdentification($options['filters']['user']);
81 }
82 if (!empty($options['filters']['obj_title'])) {
83 $usr_data_filter = $usr_data_filter->withObjectTitle($options['filters']['obj_title']);
84 }
85 if (!empty($options['filters']['org_unit'])) {
86 $org_unit_id = (int) $options['filters']['org_unit'];
87 $usr_data_filter = $usr_data_filter->withOrgUnitIds([$org_unit_id]);
88 }
89
90 if (!empty($options['sort']['field']) && !empty($options['sort']['direction'])) {
91 if ($options['sort']['field'] === "objectTitle" && $options['sort']['direction'] === "asc") {
92 $usr_data_filter = $usr_data_filter->withSortedObjectTitles(UserDataFilter::SORT_DIRECTION_ASC);
93 } elseif ($options['sort']['field'] === "objectTitle" && $options['sort']['direction'] === "desc") {
94 $usr_data_filter = $usr_data_filter->withSortedObjectTitles(UserDataFilter::SORT_DIRECTION_DESC);
95 } elseif ($options['sort']['field'] === "issuedOnTimestamp" && $options['sort']['direction'] === "asc") {
96 $usr_data_filter = $usr_data_filter->withSortedIssuedOnTimestamps(UserDataFilter::SORT_DIRECTION_ASC);
97 } elseif ($options['sort']['field'] === "issuedOnTimestamp" && $options['sort']['direction'] === "desc") {
98 $usr_data_filter = $usr_data_filter->withSortedIssuedOnTimestamps(UserDataFilter::SORT_DIRECTION_DESC);
99 } elseif ($options['sort']['field'] === "userLogin" && $options['sort']['direction'] === "asc") {
100 $usr_data_filter = $usr_data_filter->withSortedLogins(UserDataFilter::SORT_DIRECTION_ASC);
101 } elseif ($options['sort']['field'] === "userLogin" && $options['sort']['direction'] === "desc") {
102 $usr_data_filter = $usr_data_filter->withSortedLogins(UserDataFilter::SORT_DIRECTION_DESC);
103 } elseif ($options['sort']['field'] === "userFirstName" && $options['sort']['direction'] === "asc") {
104 $usr_data_filter = $usr_data_filter->withSortedFirstNames(UserDataFilter::SORT_DIRECTION_ASC);
105 } elseif ($options['sort']['field'] === "userFirstName" && $options['sort']['direction'] === "desc") {
106 $usr_data_filter = $usr_data_filter->withSortedFirstNames(UserDataFilter::SORT_DIRECTION_DESC);
107 } elseif ($options['sort']['field'] === "userLastName" && $options['sort']['direction'] === "asc") {
108 $usr_data_filter = $usr_data_filter->withSortedLastNames(UserDataFilter::SORT_DIRECTION_ASC);
109 } elseif ($options['sort']['field'] === "userLastName" && $options['sort']['direction'] === "desc") {
110 $usr_data_filter = $usr_data_filter->withSortedLastNames(UserDataFilter::SORT_DIRECTION_DESC);
111 } elseif ($options['sort']['field'] === "userEmail" && $options['sort']['direction'] === "asc") {
112 $usr_data_filter = $usr_data_filter->withSortedEmails(UserDataFilter::SORT_DIRECTION_ASC);
113 } elseif ($options['sort']['field'] === "userEmail" && $options['sort']['direction'] === "desc") {
114 $usr_data_filter = $usr_data_filter->withSortedEmails(UserDataFilter::SORT_DIRECTION_DESC);
115 }
116 }
117
118 if ((!empty($options['limit']['start']) || $options['limit']['start'] === 0)
119 && !empty($options['limit']['end'])
120 ) {
121 $usr_data_filter = $usr_data_filter->withLimitOffset((int) $options['limit']['start']);
122 $usr_data_filter = $usr_data_filter->withLimitCount((int) $options['limit']['end']);
123 }
124
125 $data = array_merge($data, $cert_api->getUserCertificateData(
126 $usr_data_filter,
127 [ilMyStaffGUI::class, ilMStListCertificatesGUI::class]
128 ));
129 }
130
131 $unique_cert_data = [];
132 foreach ($data as $cert_data) {
133 assert($cert_data instanceof UserCertificateDto);
134 $unique_cert_data[$cert_data->getCertificateId()] = $cert_data;
135 }
136
137 return $unique_cert_data;
138 }

References $data, ILIAS\UI\Implementation\Component\Input\Field\$options, ILIAS\MyStaff\ilMyStaffAccess\getInstance(), ILIAS\Repository\int(), ilOrgUnitOperation\OP_VIEW_CERTIFICATES, ILIAS\Certificate\API\Filter\UserDataFilter\SORT_DIRECTION_ASC, and ILIAS\Certificate\API\Filter\UserDataFilter\SORT_DIRECTION_DESC.

+ Here is the call graph for this function:

Field Documentation

◆ $dic

Container ILIAS\MyStaff\ListCertificates\ilMStListCertificates::$dic
protected

The documentation for this class was generated from the following file: