Разграничить администраторские права
Помогите пожалуйста. На сайте имеется несколько администраторов. Но получается, что если они имеют админские права, то и в админпанели они могут тоже все(вкл. и откл. плагины, менять настройки и т.д.).
Вопрос как мне защититься от кривых рук? Идея такая, чтобы часть меню админки скрыть от них, а оставить только пункт «блоги и пользователи». Пускай что хотят там-то и делают.
В файле menu.admin.tpl (aceadminpanel) добавил {if $oUserCurrent->isAdministrator()} и получилось вот так
Но тогда все равно открывается все меню, поскольку они являются админами. А хотелось бы чтобы было как-то вот так
{if $sUserLogin==gena}, но тогда меню закрывается для всех.
Что я не так сделал?
Вопрос как мне защититься от кривых рук? Идея такая, чтобы часть меню админки скрыть от них, а оставить только пункт «блоги и пользователи». Пускай что хотят там-то и делают.
В файле menu.admin.tpl (aceadminpanel) добавил {if $oUserCurrent->isAdministrator()} и получилось вот так
{if $oUserCurrent->isAdministrator()}
<li {if $sMenuItemSelect=='blogs'}class="active"{/if}>
<a href="{router page='admin'}blogs/">{$oLang->adm_menu_blogs}</a>
{if $sMenuItemSelect=='blogs'}
<ul class="sub-menu" >
<li {if $sMenuSubItemSelect=='list'}class="active"{/if}><div><a href="{router page='admin'}blogs/list/">{$oLang->adm_menu_blogs_list}</a></div></li>
{if $aPluginActive.aceblogextender}
<li {if $sMenuSubItemSelect=='category'}class="active"{/if}><div><a href="{router page='category'}admin/list/">{$oLang->mblog_categories}</a></div></li>
{/if}
</ul>
{/if}
</li>
Но тогда все равно открывается все меню, поскольку они являются админами. А хотелось бы чтобы было как-то вот так
{if $sUserLogin==gena}, но тогда меню закрывается для всех.
Что я не так сделал?
21 комментарий
А если на шаблонах, то попробуй сделать подстановку в шаблоне типа
То есть первое меню для админа гены, а другое для всех админов
Ведь переменная sUserLogin=gena не дана… хм.
Подскажите как правильно, я в php не особо силен. Так, сам потихоньку пытаюсь разобраться.
пустую тетрадку, чтобы получить текст, нужно создать переменную, для условий.
$sUserLogin = «gena»
а ещё лучше, по id…
{$sUserLogin = 'admin'}
{if $oUserCurrent->isAdministrator() and $sUserLogin=='gena'}
Поменяй на
Попробуй эту строчку.
$sUserLogin=$this->sCurrentEvent;
/**
* Проверяем есть ли такой юзер
*/
if (!($this->oUserProfile=$this->User_GetUserByLogin($sUserLogin))) {
}
А уже потом проверять
{$oUserLogin = 'gena'}
{if $oUserCurrent->isAdministrator() and $sUserLogin=='gena'}
только я не пойму как здесь правильно эту строчку использовать ($sUserLogin=$this->sCurrentEvent; )
попробуй в кодах UserId и по id его…
Так почему полученный логин сравнивая с нужным {if $oUserLogin=='admin'} закрывает меню для всех.
Неужели никто не поможет.