_authorization = $authorization; $this->_urlBuilder = $urlBuilder; $this->_cacheTypeList = $cacheTypeList; } /** * Get array of cache types which require data refresh * * @return array */ protected function _getCacheTypesForRefresh() { $output = []; foreach ($this->_cacheTypeList->getInvalidated() as $type) { $output[] = $type->getCacheType(); } return $output; } /** * Retrieve unique message identity * * @return string */ public function getIdentity() { return md5('cache' . implode(':', $this->_getCacheTypesForRefresh())); } /** * Check whether * * @return bool */ public function isDisplayed() { return $this->_authorization->isAllowed( 'Magento_Backend::cache' ) && count( $this->_getCacheTypesForRefresh() ) > 0; } /** * Retrieve message text * * @return string */ public function getText() { $cacheTypes = implode(', ', $this->_getCacheTypesForRefresh()); $message = __('One or more of the Cache Types are invalidated: %1. ', $cacheTypes) . ' '; $url = $this->_urlBuilder->getUrl('adminhtml/cache'); $message .= __('Please go to Cache Management and refresh cache types.', $url); return $message; } /** * Retrieve problem management url * * @return string|null */ public function getLink() { return $this->_urlBuilder->getUrl('adminhtml/cache'); } /** * Retrieve message severity * * @return int */ public function getSeverity() { return \Magento\Framework\Notification\MessageInterface::SEVERITY_CRITICAL; } }