*/ class Team extends Record implements Di\FileManagerAware, Di\DataManagerAware { use Di\FileManagerSetter; use Di\DataManagerSetter; public function afterUpdateEntity(Entity $entity, $data) { parent::afterUpdateEntity($entity, $data); if (property_exists($data, 'rolesIds')) { $this->clearRolesCache(); } } protected function clearRolesCache(): void { $this->fileManager->removeInDir('data/cache/application/acl'); $this->fileManager->removeInDir('data/cache/application/aclMap'); $this->dataManager->updateCacheTimestamp(); } public function link(string $id, string $link, string $foreignId): void { parent::link($id, $link, $foreignId); if ($link === 'users') { $this->fileManager->removeFile('data/cache/application/acl/' . $foreignId . '.php'); $this->fileManager->removeFile('data/cache/application/aclMap/' . $foreignId . '.php'); $this->dataManager->updateCacheTimestamp(); } } public function unlink(string $id, string $link, string $foreignId): void { parent::unlink($id, $link, $foreignId); if ($link === 'users') { $this->fileManager->removeFile('data/cache/application/acl/' . $foreignId . '.php'); $this->fileManager->removeFile('data/cache/application/aclMap/' . $foreignId . '.php'); $this->dataManager->updateCacheTimestamp(); } } public function massLink(string $id, string $link, SearchParams $searchParams): bool { $result = parent::massLink($id, $link, $searchParams); if ($link === 'users') { $this->clearRolesCache(); } return $result; } }