52 : array
53 {
54
56
57 $_options = array(
58 'filters' => array(),
59 'sort' => array(),
60 'limit' => array(),
61 );
63
64 $cert_api = new UserCertificateAPI();
65
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);
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") {
93 } elseif (
$options[
'sort'][
'field'] ===
"objectTitle" &&
$options[
'sort'][
'direction'] ===
"desc") {
95 } elseif (
$options[
'sort'][
'field'] ===
"issuedOnTimestamp" &&
$options[
'sort'][
'direction'] ===
"asc") {
97 } elseif (
$options[
'sort'][
'field'] ===
"issuedOnTimestamp" &&
$options[
'sort'][
'direction'] ===
"desc") {
99 } elseif (
$options[
'sort'][
'field'] ===
"userLogin" &&
$options[
'sort'][
'direction'] ===
"asc") {
101 } elseif (
$options[
'sort'][
'field'] ===
"userLogin" &&
$options[
'sort'][
'direction'] ===
"desc") {
103 } elseif (
$options[
'sort'][
'field'] ===
"userFirstName" &&
$options[
'sort'][
'direction'] ===
"asc") {
105 } elseif (
$options[
'sort'][
'field'] ===
"userFirstName" &&
$options[
'sort'][
'direction'] ===
"desc") {
107 } elseif (
$options[
'sort'][
'field'] ===
"userLastName" &&
$options[
'sort'][
'direction'] ===
"asc") {
109 } elseif (
$options[
'sort'][
'field'] ===
"userLastName" &&
$options[
'sort'][
'direction'] ===
"desc") {
111 } elseif (
$options[
'sort'][
'field'] ===
"userEmail" &&
$options[
'sort'][
'direction'] ===
"asc") {
113 } elseif (
$options[
'sort'][
'field'] ===
"userEmail" &&
$options[
'sort'][
'direction'] ===
"desc") {
115 }
116 }
117
118 if ((!empty(
$options[
'limit'][
'start']) ||
$options[
'limit'][
'start'] === 0)
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 }
final const SORT_DIRECTION_ASC
final const SORT_DIRECTION_DESC
const OP_VIEW_CERTIFICATES