<?php 
/** 
 * Implements qtag PERMISSION. 
 * 
 * Show a permission of a node. 
 * 
 * @param Environment $env 
 *   The Environment. 
 * 
 * @param string $target 
 *   The qtag's target. 
 * 
 * @param array $attributes 
 *   The qtag's attributes. 
 * 
 * @return string 
 *   The rendered qtag. 
 */ 
function qtag_PERMISSION($env, $target, $attributes) { 
  $node = empty($target) ? NodeFactory::current($env) : NodeFactory::load($env, $target); 
  if ($node->isNew()) { 
    $permission = 'inherit'; 
  } 
  else { 
    if (!empty($node->getAttributeJSON('permissions')->{$attributes['name']})) { 
      // Try to fetch the permission from the node, first. 
      $permission = $node->getAttributeJSON('permissions')->{$attributes['name']}; 
    } 
    else { 
      $permission = $node->getPermission($attributes['name']); 
    } 
  } 
  return $permission; 
} 
 
 |