. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Services; use Espo\Core\Acl\Cache\Clearer as AclCacheClearer; use Espo\ORM\Entity; use Espo\Core\Di; /** * @extends Record<\Espo\Entities\Role> */ class Role extends Record implements Di\DataManagerAware { use Di\DataManagerSetter; protected $forceSelectAllAttributes = true; public function afterCreateEntity(Entity $entity, $data) { parent::afterCreateEntity($entity, $data); $this->clearRolesCache(); } public function afterUpdateEntity(Entity $entity, $data) { parent::afterUpdateEntity($entity, $data); $this->clearRolesCache(); } protected function clearRolesCache(): void { $this->createAclCacheClearer()->clearForAllInternalUsers(); $this->dataManager->updateCacheTimestamp(); } private function createAclCacheClearer(): AclCacheClearer { return $this->injectableFactory->create(AclCacheClearer::class); } }