I am looking a way to restrict access to specific CMS page, allowing only logged in customers with a special customer group to see it. EDIT: I have this function, but observer isn't working properly it is redirecting in loops.
public function execute(Observer $observer)
{
if(!$this->_session->isLoggedIn() && !$this->_helper->isB2DCustomer($this->_session->getCustomer()))
{
$request = $this->_objectManager->get('Magento\Framework\App\Request\Http');
//get instance for URL interface
/** @var \Magento\Framework\UrlInterface $urlInterface */
$urlInterface = $this->_objectManager->get('Magento\Framework\UrlInterface');
// URL to redirect to
$url = $urlInterface->getUrl('/');
if(strpos($request->getOriginalPathInfo(), '/b2d') == 0)
{
# redirect to root page
$observer->getControllerAction()
->getResponse()
->setRedirect($url);
}
}
}