File size: 1.39Kb
<?php
namespace MMO\Hide\XF\Permission;
use MMO\Hide\Data\HideTags;
use XF\Entity\Permission;
class NodePermissions extends XFCP_NodePermissions
{
public function isValidPermission(Permission $permission)
{
$parent = parent::isValidPermission($permission);
if ($permission->permission_group_id == 'mh_hide')
{
/** @var HideTags $hideTags */
$data = \XF::app()->data(HideTags::class);
$hideTags = $data->getHideTags();
$bypassTags = \array_map(function($tag) {
return 'bypassTag' . \ucfirst($tag);
}, $hideTags);
if (\in_array($permission->permission_id, $bypassTags))
{
return true;
}
}
return $parent;
}
protected function getFinalPerms($contentId, array $calculated, array &$childPerms)
{
$final = parent::getFinalPerms($contentId, $calculated, $childPerms);
$final += $this->builder->finalizePermissionValues($calculated['mh_hide']);
return $final;
}
protected function getFinalAnalysisPerms($contentId, array $calculated, array &$childPerms)
{
$final = parent::getFinalAnalysisPerms($contentId, $calculated, $childPerms);
$final += $this->builder->finalizePermissionValues($calculated);
return $final;
}
}