html — использование PHP для фильтрации рендеринга страниц по уровням безопасности пользователей, но отключение ссылок для непривилегированных пользователей

Фон

Я занимаюсь разработкой веб-приложения, в котором пользователи классифицируются по уровням безопасности 1-5. Это должно действовать как основной уровень доступа системы, чтобы позволить пользователям просматривать (или не) конфиденциальную информацию.

На странице системного администрирования у меня есть довольно простой макет страницы … т.е.

<?php if ($seclvl > 4) { ?>
// basic user code
<? } elseif ($seclvl > 1 && $seclvlv <= 4){ ?>
/// elevated privileges code
<? } elseif ($seclvl == 1) { ?>
// super administrator code
<? } else { ?>
//fallback if no security flag - error msg
<? } ?>

То, с чем я сталкиваюсь, это выяснение наилучшей методологии, чтобы система отображала пару кнопок в разделе 2-4, но при этом можно было нажимать только на # 1, без необходимости указывать индивидуально через php display gray for sec lvl 2-4, activate lvl 1… Кто-нибудь может предложить лучшую методологию, чем следующая:

<? } elseif ($seclvl > 1 && $seclvlv <= 4){ ?>

<? if (!$seclvl == 1) { ?>
<a href="#" class="disabled-add">Add a User</a>
<? } else { ?>
<a href="#" class="active-add">Add a User</a>
<? } ?>

//basics for seclvl 2-4... i.e:
<a href="#" class="view">View User Info</a>

<? } else { ?>

Кроме того, теперь, когда я пишу этот блок кода (все еще не проверенный, но теория есть) … я думаю, что мой короткий тег вложен, если операторы на самом деле не работают … Любые комментарии приветствуются.

я действительно действительно не хочу указывать условия безопасного доступа для каждая чертова ссылка / кнопка.

0

Решение

Вы можете написать функцию, чтобы сделать ее проще или использовать in_array() как это:

<?php

if (in_array($seclvl, [2,3,4])) {  // seclvl is between 1 and 5
// do something
}

… или как функция, подобная этой:

<?php

is_between($seclvl, $min = 1, $max = 5)) {
if ($seclvl >= $min && $seclvl <= $max)
return true;
return false;
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]