ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
class.ilCertificateObjectsForUserPreloader.php
Go to the documentation of this file.
1<?php
2
19declare(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