ILIAS  trunk Revision v11.0_alpha-1723-g8e69f309bab
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
class.ilCertificateObjectsForUserPreloader.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
25 {
27  private static array $certificates = [];
28 
29  public function __construct(private readonly ilUserCertificateRepository $userCertificateRepository)
30  {
31  }
32 
36  public function preLoad(int $userId, array $objIds): void
37  {
38  if (!array_key_exists($userId, self::$certificates)) {
39  self::$certificates[$userId] = [];
40  }
41 
42  $objectIdsWithUserCertificate = $this->userCertificateRepository->fetchObjectIdsWithCertificateForUser(
43  $userId,
44  array_diff($objIds, self::$certificates[$userId])
45  );
46 
47  self::$certificates[$userId] = array_unique(array_merge(
48  $objectIdsWithUserCertificate,
49  self::$certificates[$userId]
50  ));
51  }
52 
53  public function isPreloaded(int $userId, int $objId): bool
54  {
55  if (!array_key_exists($userId, self::$certificates)) {
56  return false;
57  }
58 
59  return in_array($objId, self::$certificates[$userId], true);
60  }
61 }
__construct(private readonly ilUserCertificateRepository $userCertificateRepository)
$objId
Definition: xapitoken.php:57