Plugin index
<?php
if (class_exists('\Textpattern\Tag\Registry')) {
Txp::get('\Textpattern\Tag\Registry')
->register('rvm_privileged')
->register('rvm_if_privileged')
->register('rvm_privileged_user');
}
function rvm_privileged($atts)
{
extract(lAtts(array(
'name' => '',
'level' => ''
), $atts));
if (!rvm_is_privileged($name, $level))
{
ob_clean();
txp_die('Forbidden', 403);
}
}
function rvm_if_privileged($atts, $thing = '')
{
extract(lAtts(array(
'name' => '',
'level' => ''
), $atts));
return parse(EvalElse($thing, rvm_is_privileged($name, $level)));
}
function rvm_is_privileged($name, $level)
{
static $ili = 0;
if ($ili === 0) $ili = is_logged_in();
if (!$ili) return FALSE;
$isname = ($name and in_array($ili['name'], do_list($name)));
$islevel = ($level and in_array($ili['privs'], do_list($level)));
if ($name)
{
if ($level)
{
return ($isname and $islevel);
}
else
{
return $isname;
}
}
elseif($level)
{
return $islevel;
}
else
{
return TRUE;
}
}
function rvm_privileged_user($atts)
{
extract(lAtts(array(
'type' => 'RealName'
), $atts));
static $ili = 0;
if ($ili === 0) $ili = is_logged_in();
$types = array('RealName', 'name', 'email', 'privilege', 'level');
if (!$ili or !in_array($type, $types)) return;
$levels = array('none', 'publisher', 'managing editor', 'copy editor', 'staff writer', 'freelancer', 'designer');
switch ($type)
{
case 'privilege': $out = $levels[$ili['privs']]; break;
case 'level' : $out = $ili['privs']; break;
default : $out = $ili[$type];
}
return htmlspecialchars($out);
}
?>