diff --git a/classes/display/HTMLDisplayHandler.php b/classes/display/HTMLDisplayHandler.php
index 6eb810ec9..d67d86b7e 100644
--- a/classes/display/HTMLDisplayHandler.php
+++ b/classes/display/HTMLDisplayHandler.php
@@ -408,19 +408,36 @@ class HTMLDisplayHandler
$current_module_info = Context::get('current_module_info');
$site_module_info = Context::get('site_module_info');
$document_srl = Context::get('document_srl');
- if ($document_srl)
+ $grant = Context::get('grant');
+ $permitted = $grant->access;
+ if (isset($grant->view) && !$grant->view)
{
- $oDocument = Context::get('oDocument') ?: getModel('document')->getDocument($document_srl, false, false);
- if (is_object($oDocument) && $oDocument->document_srl == $document_srl && (!method_exists($oDocument, 'isSecret') || !$oDocument->isSecret()))
+ $permitted = false;
+ }
+ if ($document_srl && $permitted)
+ {
+ if (isset($grant->consultation_read) && !$grant->consultation_read)
{
- $page_type = 'article';
+ $permitted = false;
+ }
+ else
+ {
+ $oDocument = Context::get('oDocument') ?: getModel('document')->getDocument($document_srl, false, false);
+ if (is_object($oDocument) && $oDocument->document_srl == $document_srl)
+ {
+ $page_type = 'article';
+ if (method_exists($oDocument, 'isSecret') && $oDocument->isSecret())
+ {
+ $permitted = false;
+ }
+ }
}
}
// Add basic metadata.
- Context::addOpenGraphData('og:title', Context::getBrowserTitle());
+ Context::addOpenGraphData('og:title', $permitted ? Context::getBrowserTitle() : lang('msg_not_permitted'));
Context::addOpenGraphData('og:site_name', Context::getSiteTitle());
- if ($page_type === 'article' && config('seo.og_extract_description'))
+ if ($page_type === 'article' && $permitted && config('seo.og_extract_description'))
{
$description = trim(utf8_normalize_spaces($oDocument->getContentText(200)));
}
@@ -459,13 +476,13 @@ class HTMLDisplayHandler
{
Context::addOpenGraphData('og:locale', $locales[$lang_type]['locale']);
}
- if ($page_type === 'article' && $oDocument->getLangCode() !== $lang_type && isset($locales[$oDocument->getLangCode()]))
+ if ($page_type === 'article' && $permitted && $oDocument->getLangCode() !== $lang_type && isset($locales[$oDocument->getLangCode()]))
{
Context::addOpenGraphData('og:locale:alternate', $locales[$oDocument->getLangCode()]);
}
// Add image.
- if ($page_type === 'article' && config('seo.og_extract_images'))
+ if ($page_type === 'article' && $permitted && config('seo.og_extract_images'))
{
if (($document_images = Rhymix\Framework\Cache::get("seo:document_images:$document_srl")) === null)
{
@@ -525,7 +542,7 @@ class HTMLDisplayHandler
}
// Add tags and hashtags for articles.
- if ($page_type === 'article')
+ if ($page_type === 'article' && $permitted)
{
$tags = $oDocument->getTags();
foreach ($tags as $tag)
@@ -550,7 +567,7 @@ class HTMLDisplayHandler
}
// Add datetime for articles.
- if ($page_type === 'article' && config('seo.og_use_timestamps'))
+ if ($page_type === 'article' && $permitted && config('seo.og_use_timestamps'))
{
Context::addOpenGraphData('og:article:published_time', $oDocument->getRegdate('c'));
Context::addOpenGraphData('og:article:modified_time', $oDocument->getUpdate('c'));