INSTANTSHOP 2.2 Блокировка доступа группе пользователей

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 17 февраля 2016 в 23:02
Как закрыть доступ группе пользователей "Менеджеры" (присвоен статус "Администраторы". Дан доступ к "Управление компонентами" и "Магазин" ) ко всему компоненту кроме раздела заказов (в админке)?

Возможно есть более грамотные варианты, но я вижу решение в написании JS который будет присваивать display:none; ненужным дивам. Как правильно оформить такой скрипт? И может есть более грамотные решения?
#2 18 февраля 2016 в 00:12


Как закрыть доступ группе пользователей "Менеджеры" (присвоен статус "Администраторы". Дан доступ к "Управление компонентами" и "Магазин" ) ко всему компоненту кроме раздела заказов?

Возможно есть более грамотные варианты, но я вижу решение в написании JS который будет присваивать display:none; ненужным дивам. Как правильно оформить такой скрипт? И может есть более грамотные решения?

Рич

Тут проще прописать условие в каждом админ шаблоне шопа который нужно закрыть
Что-то типа
{if group_id == 1}
Шаблон items.tpl.php
{/if}
#3 18 февраля 2016 в 00:23


Тут проще прописать условие в каждом админ шаблоне шопа который нужно закрыть
Что-то типа
{if group_id == 1}
Шаблон items.tpl.php
{/if}

Gumoff

То есть, задать свой шаблон для группы?
#4 18 февраля 2016 в 01:12
А как можно передать переменную $group_id в саму админку?
#5 18 февраля 2016 в 22:14

То есть, задать свой шаблон для группы?

А как можно передать переменную $group_id в саму админку?

Рич

Шаблоны уже есть, они лежат в admin/components/shop/
items.tpl.php
orders.tpl.php и т.д.
вы в них внутри можете установить условие показа только для определенных групп раз,
во вторых в backend.php
найти ссылку (if opt ) которая вызвает процесс перехода на эти шаблоны и разрешить ее только группе нужной

безграмотно пояснил, но как мог
#6 18 февраля 2016 в 23:39

items.tpl.php
orders.tpl.php и т.д.
вы в них внутри можете установить условие показа только для определенных групп раз,

Gumoff

Я не совсем понял, каким образом установить такое условие?

во вторых в backend.php
найти ссылку (if opt ) которая вызвает процесс перехода на эти шаблоны и разрешить ее только группе нужной

Gumoff

Файлов backend.php я нашел много) и не нашел в них (if opt) Может подскажете более точные действия?) Я так понимаю, должна быть команда для запрета перехода конкретному ID. В каком она должна быть виде?
#7 19 февраля 2016 в 00:05


items.tpl.php
orders.tpl.php и т.д.
вы в них внутри можете установить условие показа только для определенных групп раз,

Gumoff

Я не совсем понял, каким образом установить такое условие?

во вторых в backend.php
найти ссылку (if opt ) которая вызвает процесс перехода на эти шаблоны и разрешить ее только группе нужной

Gumoff

Файлов backend.php я нашел много) и не нашел в них (if opt) Может подскажете более точные действия?) Я так понимаю, должна быть команда для запрета перехода конкретному ID. В каком она должна быть виде?

Рич

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

Думаю все проще тогда лучше сделать

toolmenu которое висит у вас над заказами это и есть ссылки перехода в списки товаров, характеристик, продаж
найдите файл где это меню фигурирует и прямо там задайте условие ограничения отображения этих ссылок для групп
#8 19 февраля 2016 в 00:19

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

Gumoff

Я просто немного туплю)) Инстант Шоп для меня в новинку) Как ребенок перед ним, если честно)

toolmenu которое висит у вас над заказами это и есть ссылки перехода в списки товаров, характеристик, продаж
найдите файл где это меню фигурирует и прямо там задайте условие ограничения отображения этих ссылок для групп

Gumoff

Вот я и пытаюсь вырубить это меню и ненужные блоки div. Пытался сделать вот таким способом

  1.  
  2. <script>
  3. $(document).ready(function() {
  4.  
  5. if ($group_id == 11) {
  6. $('.group.tovars').css('display', 'none'); }
  7. else {
  8. }
  9.  
  10. });
  11. </script>
  12.  
Но беда в том, что на главной странице админки (правлю файл main.php) не приходит переменная $group_id (может я что-то не туда ползу, и упускаю какой-то параметр Инстанта) Если я поймаю у залогиненного пользователя его $group_id, то остальные блоки я сумею скрыть.
#9 19 февраля 2016 в 00:25

во вторых в backend.php
найти ссылку (if opt ) которая вызвает процесс перехода на эти шаблоны и разрешить ее только группе нужной

Gumoff

А по этому моменту я так понял, надо править самую первую строчку
  1. <?php if(!defined('VALID_CMS_ADMIN')) { die('ACCESS DENIED'); } ?>
Быть может в ней прописать условие, но вот как, я не врубился.
#10 19 февраля 2016 в 00:37


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

Gumoff

Я просто немного туплю)) Инстант Шоп для меня в новинку) Как ребенок перед ним, если честно)

toolmenu которое висит у вас над заказами это и есть ссылки перехода в списки товаров, характеристик, продаж
найдите файл где это меню фигурирует и прямо там задайте условие ограничения отображения этих ссылок для групп

Gumoff

Вот я и пытаюсь вырубить это меню и ненужные блоки div. Пытался сделать вот таким способом

  1.  
  2.  
  3. $(document).ready(function() {
  4.  
  5. if ($group_id == 11) {
  6. $('.group.tovars').css('display', 'none'); }
  7. else {
  8. }
  9.  
  10. });
  11.  
  12.  
Но беда в том, что на главной странице админки (правлю файл main.php) не приходит переменная $group_id (может я что-то не туда ползу, и упускаю какой-то параметр Инстанта) Если я поймаю у залогиненного пользователя его $group_id, то остальные блоки я сумею скрыть.

Рич

Не помню за что отвечает main.php — помоему за статьи,
как я понял вы хотите присвоить классы кнопкам и впихнуть скрипт в файл меню общий для всей системы

а само toolmenu shopa выводит кнопки тут admin/components/shop/backend.php

  1.  
  2. $toolmenu = array();
  3.  
  4. if ($opt=='list_items' || $opt=='list_cats' ||
  5. $opt=='list_chars' || $opt=='list_vendors' || $opt=='list_delivery' ||
  6. $opt=='list_psys' || $opt=='list_orders' || $opt=='list_discounts'
  7.  
Поправлюсь здесь не кнопки выодит а то что уже делать при нажатии на них
#11 19 февраля 2016 в 00:47
Вот здесь еще проанализируйте, возможно впихнете условие
/admin/includes/cp.php

  1.  
  2. function cpToolMenu($toolmenu_list){
  3.  
  4. if ($toolmenu_list){
  5. echo '<table width="100%" cellpadding="2" border="0" class="toolmenu extra" style="margin:0px"><tr><td>';
  6. foreach($toolmenu_list as $toolmenu){
  7.  
  8. if(!$toolmenu){
  9. echo '<div class="toolmenuseparator"></div>'; continue;
  10. }
  11.  
  12. $class_selected = ('?'.$_SERVER['QUERY_STRING'] == $toolmenu['link']) ? 'toolmenuitem_sel' : '';
  13. $target = isset($toolmenu['target']) ? 'target="'.$toolmenu['target'].'"' : '';
  14. echo '<a class="'.$class_selected.' toolmenuitem uittip" href="'.$toolmenu['link'].'" title="'.$toolmenu['title'].'" '.$target.'><img src="images/toolmenu/'.$toolmenu['icon'].'" border="0" /></a>';
  15. }
  16. echo '</td></tr></table>';
  17. }
  18.  
  19. return;
  20. }
  21.  
#12 19 февраля 2016 в 02:24



Не помню за что отвечает main.php — помоему за статьи,
как я понял вы хотите присвоить классы кнопкам и впихнуть скрипт в файл меню общий для всей системы

а само toolmenu shopa выводит кнопки тут admin/components/shop/backend.php

  1.  
  2. $toolmenu = array();
  3.  
  4. if ($opt=='list_items' || $opt=='list_cats' ||
  5. $opt=='list_chars' || $opt=='list_vendors' || $opt=='list_delivery' ||
  6. $opt=='list_psys' || $opt=='list_orders' || $opt=='list_discounts'
  7.  
Поправлюсь здесь не кнопки выодит а то что уже делать при нажатии на них

Gumoff

main.php отвечает за верстку главной страницы админки.

Этот вариант уже то, что нужно. Но, он не реагирует на переменную $group_id т.е. Нужно ее как-то вычислить. я сделал так:

  1. $group_id = mysql_query("SELECT group_id FROM cms_users WHERE id = '$id'");
Этой переменной я закрываю распределяю, что показывать, а что нет в менюшке таким образом:

  1.  
  2. $group_id = mysql_query("SELECT group_id FROM cms_users WHERE id = '$id'");
  3.  
  4. $toolmenu = array();
  5.  
  6. if ($opt=='list_items' || $opt=='list_cats' ||
  7. $opt=='list_chars' || $opt=='list_vendors' || $opt=='list_delivery' ||
  8. $opt=='list_psys' || $opt=='list_orders' || $opt=='list_discounts'){
  9.  
  10. echo '<h3>Магазин</h3>';
  11.  
  12. $toolmenu[0]['icon'] = 'listorders.gif';
  13. $toolmenu[0]['title'] = 'Заказы';
  14. $toolmenu[0]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_orders';
  15.  
  16. if ($group_id == 11) { }
  17. else {
  18. $toolmenu[1]['icon'] = 'folders.gif';
  19. $toolmenu[1]['title'] = 'Категории и товары';
  20. $toolmenu[1]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_items&cat_id=0&hide_cats=0&orderby=id&orderto=desc&vendor_id=0&art_no=&title=';
  21. }
  22. }
  23.  
Что не так?
#13 19 февраля 2016 в 16:30
Не уверен но может нужно тут ядро или базу подключить

$inCore = cmsCore::getInstance();
$inDB = cmsDatabase::getInstance();

Потом может наоборот сделать условие
показывать только админу

if $user_ is_admin {
$toolmenu[1]['icon'] = 'folders.gif';
$toolmenu[1]['title'] = 'Категории и товары';
$toolmenu[1]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=list_items&cat_id=0&hide_cats=0&orderby=id&orderto=desc&vendor_id=0&art_no=&title=';
} else {
});
#14 19 февраля 2016 в 16:43

Потом может наоборот сделать условие
показывать только админу

Gumoff

Группа пользователей Менеджеры является тоже относится к администраторам (Активирован чекбокс "Администраторы?"). Они различны или выйдет одно и тоже?
#15 19 февраля 2016 в 16:50


Потом может наоборот сделать условие
показывать только админу

Gumoff

Группа пользователей Менеджеры является тоже относится к администраторам (Активирован чекбокс "Администраторы?"). Они различны или выйдет одно и тоже?

Рич

Тогда по id суперадмина
If ($inUser-->id==1) {

так как то
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.