Skip to content

Commit c9fb0fc

Browse files
committed
show unqualified in user-mgmt
1 parent 7e78813 commit c9fb0fc

File tree

2 files changed

+16
-37
lines changed

2 files changed

+16
-37
lines changed

resources/lib/UnityLDAP.php

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -190,23 +190,14 @@ private function getAllGIDNumbersInUse(): array
190190
);
191191
}
192192

193-
public function getQualifiedUsersAttributes(
194-
array $attributes,
195-
array $default_values = [],
196-
): array {
197-
$include_uids = $this->userFlagGroups[UserFlag::QUALIFIED->value]->getMemberUIDs();
198-
$user_attributes = $this->baseOU->getChildrenArrayStrict(
193+
public function getAllUsersAttributes(array $attributes, array $default_values = []): array
194+
{
195+
return $this->baseOU->getChildrenArrayStrict(
199196
$attributes,
200197
true, // recursive
201198
"(objectClass=posixAccount)",
202199
$default_values,
203200
);
204-
foreach ($user_attributes as $i => $attributes) {
205-
if (!in_array($attributes["uid"][0], $include_uids)) {
206-
unset($user_attributes[$i]);
207-
}
208-
}
209-
return array_values($user_attributes); // reindex
210201
}
211202

212203
public function getAllPIGroups(
@@ -267,11 +258,9 @@ public function getAllPIGroupOwnerUIDs(): array
267258
/**
268259
* Returns an associative array where keys are UIDs and values are arrays of PI GIDs
269260
*/
270-
public function getQualifiedUID2PIGIDs(): array
261+
public function getUID2PIGIDs(): array
271262
{
272-
// initialize output so each UID is a key with an empty array as its value
273-
$uids = $this->userFlagGroups[UserFlag::QUALIFIED->value]->getMemberUIDs();
274-
$uid2pigids = array_combine($uids, array_fill(0, count($uids), []));
263+
$uid2pigids = [];
275264
// for each PI group, append that GID to the member list for each of its member UIDs
276265
foreach (
277266
$this->getAllPIGroupsAttributes(
@@ -282,14 +271,10 @@ public function getQualifiedUID2PIGIDs(): array
282271
) {
283272
$gid = $array["cn"][0];
284273
foreach ($array["memberuid"] as $uid) {
285-
if (array_key_exists($uid, $uid2pigids)) {
286-
array_push($uid2pigids[$uid], $gid);
287-
} else {
288-
UnityHTTPD::errorLog(
289-
"warning",
290-
"user '$uid' is a member of a PI group but is not a qualified user!",
291-
);
274+
if (!array_key_exists($uid, $uid2pigids)) {
275+
$uid2pigids[$uid] = [];
292276
}
277+
array_push($uid2pigids[$uid], $gid);
293278
}
294279
}
295280
return $uid2pigids;

webroot/admin/user-mgmt.php

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,15 @@ class="filterSearch"
4444
<td>Actions</td>
4545
<?php
4646
foreach (UserFlag::cases() as $flag) {
47-
if ($flag != UserFlag::QUALIFIED) {
48-
$value = $flag->value;
49-
echo "<td id='$value'><span class='filter'>⫧ </span>$value</td>";
50-
}
47+
$value = $flag->value;
48+
echo "<td id='$value'><span class='filter'>⫧ </span>$value</td>";
5149
}
5250
?>
5351
</tr>
5452

5553
<?php
56-
$UID2PIGIDs = $LDAP->getQualifiedUID2PIGIDs();
57-
$user_attributes = $LDAP->getQualifiedUsersAttributes(
54+
$UID2PIGIDs = $LDAP->getUID2PIGIDs();
55+
$user_attributes = $LDAP->getAllUsersAttributes(
5856
["uid", "gecos", "o", "mail"],
5957
default_values: [
6058
"gecos" => ["(not found)"],
@@ -64,9 +62,7 @@ class="filterSearch"
6462
);
6563
$users_with_flags = [];
6664
foreach (UserFlag::cases() as $flag) {
67-
if ($flag != UserFlag::QUALIFIED) {
68-
$users_with_flags[$flag->value] = $LDAP->userFlagGroups[$flag->value]->getMemberUIDs();
69-
}
65+
$users_with_flags[$flag->value] = $LDAP->userFlagGroups[$flag->value]->getMemberUIDs();
7066
}
7167
usort($user_attributes, fn ($a, $b) => strcmp($a["uid"][0], $b["uid"][0]));
7268
foreach ($user_attributes as $attributes) {
@@ -85,7 +81,7 @@ class="filterSearch"
8581
</td>
8682
";
8783
echo "<td>";
88-
if (count($UID2PIGIDs[$uid]) > 0) {
84+
if (array_key_exists($uid, $UID2PIGIDs) && ($UID2PIGIDs[$uid]) > 0) {
8985
echo "<table>";
9086
foreach ($UID2PIGIDs[$uid] as $gid) {
9187
echo "<tr><td>$gid</td></tr>";
@@ -105,10 +101,8 @@ class="filterSearch"
105101
echo "</td>";
106102
foreach (UserFlag::cases() as $flag) {
107103
echo "<td>";
108-
if ($flag != UserFlag::QUALIFIED) {
109-
if (in_array($uid, $users_with_flags[$flag->value])) {
110-
echo $flag->value;
111-
}
104+
if (in_array($uid, $users_with_flags[$flag->value])) {
105+
echo $flag->value;
112106
}
113107
echo "</td>";
114108
}

0 commit comments

Comments
 (0)