Форум русской поддержки Joomla!® CMS
21.02.2017, 11:36:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

[FAQ][Решено] Как настраивать права для компонентов, у которых нет поддержки ACL?

 (Прочитано 3937 раз)
0 Пользователей и 1 Гость смотрят эту тему.
createa
Давно я тут
****

Репутация: +0/-1
Offline Offline

Сообщений: 279



« : 22.08.2013, 21:34:43 »

Может, заголовок не совсем верно отражает суть, но вот в чем проблема:
Я настраиваю меню админки для менеджера, убирая оттуда все то, что ему видеть не нужно. С родными компонентами проблем нет, но вот Zoo и Widgetkit не имеют настройки прав доступа (или же их так запрятали, что я не могу найти). Как побороть?
« Последнее редактирование: 18.12.2013, 11:26:38 от b2z » Записан
v-idea
Давно я тут
****

Репутация: +35/-0
Offline Offline

Пол: Мужской
Сообщений: 202



« Ответ #1 : 22.08.2013, 21:39:35 »

Если ACL в Zoo и Widgetkit нет, то значит - НЕТ! И это ни как не побороть, акромя вмешательства в сам код. Ито модификации таких не простых компонентов задача не из дешёвых.
Лично я только русифицировал (внизу ссылка), ито могу сказать это не так просто было, я уж не говорю о встройки в него непредусмотренного ACL. Но можно, вопрос всего лишь желания и финансовой возможности.
Записан
createa
Давно я тут
****

Репутация: +0/-1
Offline Offline

Сообщений: 279



« Ответ #2 : 22.08.2013, 21:55:45 »

в первом абзаце вы говорите, что нельзя. во втором — что можно.
Записан
Fedor Vlasenko
Профи
********

Репутация: +698/-5
Offline Offline

Пол: Мужской
Сообщений: 3823


Все начинается с Value


« Ответ #3 : 22.08.2013, 22:05:55 »

Цитировать
Если ACL в Zoo и Widgetkit нет, то значит - НЕТ! И это ни как не побороть
Админка - это тот же шаблон и любые условия там работают как и на фронте.
Записан
createa
Давно я тут
****

Репутация: +0/-1
Offline Offline

Сообщений: 279



« Ответ #4 : 22.08.2013, 22:08:46 »

Так может кто-то подскажет более конекретно, как включить отображение этих компонентов в меню для группы "Managers"?
Записан
Fedor Vlasenko
Профи
********

Репутация: +698/-5
Offline Offline

Пол: Мужской
Сообщений: 3823


Все начинается с Value


« Ответ #5 : 22.08.2013, 22:13:13 »

createa Описывайте задачу подробнее. Что значит включить. Что для группы Managers компонент не отображается? Не  все мы имеем идентичную систему. Тогда создайте группу где компонент будет отображаться и от нее стартуйте. Если в компоненте указан запрет для группы, дайте ему группу с которой он может работать. Так логичнее будет
Записан
v-idea
Давно я тут
****

Репутация: +35/-0
Offline Offline

Пол: Мужской
Сообщений: 202



« Ответ #6 : 22.08.2013, 22:13:33 »

Админка - это тот же шаблон и любые условия там работают как и на фронте.
Так вопрос то не в шаблоне, а в компонентах Zoo и Widgetkit! На счёт ACL в Zoo не знаю, но на счёт в Widgetkit я точно могу сказать, что там его нет.
Записан
Fedor Vlasenko
Профи
********

Репутация: +698/-5
Offline Offline

Пол: Мужской
Сообщений: 3823


Все начинается с Value


« Ответ #7 : 22.08.2013, 22:15:38 »

Цитировать
Так вопрос то не в шаблоне, а в компонентах Zoo и Widgetkit!
И что, выводится то шаблоном все если нет запрета
Записан
v-idea
Давно я тут
****

Репутация: +35/-0
Offline Offline

Пол: Мужской
Сообщений: 202



« Ответ #8 : 22.08.2013, 22:20:30 »

Ай, блин я то смотрю на версии 2.5. В последней версии Widgetkit ACL может и сделали.
Записан
createa
Давно я тут
****

Репутация: +0/-1
Offline Offline

Сообщений: 279



« Ответ #9 : 22.08.2013, 22:22:52 »

createa Описывайте задачу подробнее. Что значит включить. Что для группы Managers компонент не отображается? Не  все мы имеем идентичную систему. Тогда создайте группу где компонент будет отображаться и от нее стартуйте. Если в компоненте указан запрет для группы, дайте ему группу с которой он может работать. Так логичнее будет

я описал задачу в первом посте. у всех компонентв обычно есть кнопка "Настройки", где во вкладке "Права" можно настроить доступ для разных групп. У этих же компонентов нет такой кнопки. Ну не предусмотрено там это...

пс. Widgetkit / Zoo самые новые версии стоят.
Записан
Fedor Vlasenko
Профи
********

Репутация: +698/-5
Offline Offline

Пол: Мужской
Сообщений: 3823


Все начинается с Value


« Ответ #10 : 22.08.2013, 22:25:14 »

Код
<?php
//Функция проверяющая на принадлежность пользователя к группам
function getAccess($groups=array(), $user_id=0)
{
if ($user_id == 0) $user_id = JFactory::getUser()->id;
if (count($groups) == 0 && $user_id == 0) return false;
return (count(array_intersect(JFactory::getUser($user_id)->getAuthorisedGroups(), $groups))>0);
}
//разрешенные группы
$groups = array(8,2);
if (getAccess( $groups))
{
echo 'Иди ко мне мой дорогой';
}
else
{
echo 'Пшел вон смерд';
}
?>
Записан
v-idea
Давно я тут
****

Репутация: +35/-0
Offline Offline

Пол: Мужской
Сообщений: 202



« Ответ #11 : 22.08.2013, 23:05:05 »

Fedor Vlasenko, код конечно хороший, только что с ним будет делать createa?

Ладно, теперь немного мыслей вслух...
Настройка ACL в простых компонентах (стандартных, жумловских) осуществляется в настройках во вкладке "Права" самого компонента (например: "Контакты"). Файл самого кода: config.xml -

Код
<fieldset name="permissions"
label="JCONFIG_PERMISSIONS_LABEL"
description="JCONFIG_PERMISSIONS_DESC"
>

 
<field name="rules"
type="rules"
label="JCONFIG_PERMISSIONS_LABEL"
validate="rules"
filter="rules"
component="com_contact"
section="component" />

</fieldset>

Эти параметры записываются в БД, в таблицу: #__assets. Так.
Можно конечно найти в этой таблице в колонке name строку com_widgetkit и колонке rules вместо {}, прописать вручную необходимые параметры, но только толку не будет, т.к. эти параметры нужны для каждого вида (views) в файле - view.html.php.
И вот в чём вся загвоздка этих клубных компонентов Widgetkit / Zoo, что у них структура кода другая!
Записан
createa
Давно я тут
****

Репутация: +0/-1
Offline Offline

Сообщений: 279



« Ответ #12 : 23.08.2013, 01:55:11 »

может как-то можно более простым путем пойти? например, тупо убрать из меню пункты, которые не должен видеть конкретный пользователь в админке?
Записан
b2z
Support Team
*****

Репутация: +720/-0
Offline Offline

Пол: Мужской
Сообщений: 7606


Разраблю понемногу


« Ответ #13 : 23.08.2013, 10:20:49 »

может как-то можно более простым путем пойти? например, тупо убрать из меню пункты, которые не должен видеть конкретный пользователь в админке?
Но ничто не помешает ему зайти по прямой ссылке типа index.php?option=com_zoo Sad
Записан
createa
Давно я тут
****

Репутация: +0/-1
Offline Offline

Сообщений: 279



« Ответ #14 : 23.08.2013, 11:44:22 »

Zoo и Widgetkit я как раз хочу отобразить ) по-умолчанию для группы "Менеджеры" они скрыты.
Записан
Fedor Vlasenko
Профи
********

Репутация: +698/-5
Offline Offline

Пол: Мужской
Сообщений: 3823


Все начинается с Value


« Ответ #15 : 23.08.2013, 11:52:46 »

Цитировать
Fedor Vlasenko, код конечно хороший, только что с ним будет делать createa?
вставляем код в шаблон админки сайта и наслаждаемся
Код
defined('_JEXEC') or die;
 
//разрешенные группы
$groups = array(8,2);
 
//проверяемые компоненты
$check_comp = array('com_widgetkit', 'you_component');
//Функция проверяющая на принадлежность пользователя к группам
function getAccess($groups=array(), $user_id=0)
{
if ($user_id == 0) $user_id = JFactory::getUser()->id;
if (count($groups) == 0 || $user_id == 0) return false;
return (count(array_intersect(JFactory::getUser($user_id)->getAuthorisedGroups(), $groups))>0);
}
if (in_array($_REQUEST['option'], $check_comp) && !getAccess($groups)){
JFactory::getApplication()->redirect(JURI::root().'administrator/');
return;
}
Тогда создайте группу где компонент будет отображаться и от нее стартуйте.
Записан
createa
Давно я тут
****

Репутация: +0/-1
Offline Offline

Сообщений: 279



« Ответ #16 : 23.08.2013, 19:09:16 »

да, вы правы. нужно было изначально назначить группу "Администраторы", а не "Менеджеры". Сейчас меню выглядит так, как мне нужно.
Появился другой вопрос... Даже не вопрос, а скорее просто мысль — можно ли изменить названия "Widgetkit" и "Zoo" в меню админки на, скажем, "Фотогалерея" и "Каталог"?
Записан
v-idea
Давно я тут
****

Репутация: +35/-0
Offline Offline

Пол: Мужской
Сообщений: 202



« Ответ #17 : 23.08.2013, 19:16:39 »

да, вы правы. нужно было изначально назначить группу "Администраторы", а не "Менеджеры". Сейчас меню выглядит так, как мне нужно.
Появился другой вопрос... Даже не вопрос, а скорее просто мысль — можно ли изменить названия "Widgetkit" и "Zoo" в меню админки на, скажем, "Фотогалерея" и "Каталог"?

Можно, только для этого надо будет залесть в Базу Данных, и прямо там заменить либо же в локализации просто поменять.
Записан
createa
Давно я тут
****

Репутация: +0/-1
Offline Offline

Сообщений: 279



« Ответ #18 : 23.08.2013, 19:20:45 »

таак. оба эти способа пдразумевают, что при обновлении компонентов все слетит и нужно будет делать заново?
Записан
v-idea
Давно я тут
****

Репутация: +35/-0
Offline Offline

Пол: Мужской
Сообщений: 202



« Ответ #19 : 23.08.2013, 20:23:47 »

таак. оба эти способа пдразумевают, что при обновлении компонентов все слетит и нужно будет делать заново?
Если в самой локализации менять, то да при обновлении вероятнее всего слетит. А если в самой БД, то в принципе не должно.
Записан
createa
Давно я тут
****

Репутация: +0/-1
Offline Offline

Сообщений: 279



« Ответ #20 : 23.08.2013, 20:27:51 »

Подскажите, как в БД это сделать?
Записан
Fedor Vlasenko
Профи
********

Репутация: +698/-5
Offline Offline

Пол: Мужской
Сообщений: 3823


Все начинается с Value


« Ответ #21 : 23.08.2013, 20:51:16 »

в папке компонента откройте файл XML и найдите строку <menu>Widgetkit</menu> ну и замените как вам надо
Записан
createa
Давно я тут
****

Репутация: +0/-1
Offline Offline

Сообщений: 279



« Ответ #22 : 23.08.2013, 21:05:31 »

в папке компонента откройте файл XML и найдите строку <menu>Widgetkit</menu> ну и замените как вам надо

при обновлении компонента все похерится, я полагаю?
Записан
Fedor Vlasenko
Профи
********

Репутация: +698/-5
Offline Offline

Пол: Мужской
Сообщений: 3823


Все начинается с Value


« Ответ #23 : 23.08.2013, 21:07:49 »

да в любом случае заменится XML
Записан
v-idea
Давно я тут
****

Репутация: +35/-0
Offline Offline

Пол: Мужской
Сообщений: 202



« Ответ #24 : 23.08.2013, 21:41:36 »

да в любом случае заменится XML
Ну и пускай себе обновляет! XML-файл нужен при установке компонента. А нам в данном случае требуется изменить пункт меню в админке. И здесь ни чего сложно!
1) Заходим в панель управления БД - phpMyAdmin (на всех хостингах есть).
2) Заходим в таблицу БД вашего сайта.
3) Выбираем таблицу #__menu.
4) Ищем в ней в колонке title запись - COM_WIDGETKIT.
5) Нажимаем редактировать данную запись.
6) В поле title и alias прописываем необходимое значение - Фотогалерея

И будем Вам счастье в пункте меню!

С Zoo по аналогии.

Только с тайтлами в самих страницах не получиться такой вариант.( Здесь только либо через XML-файл, либо через локализацию.
Записан
createa
Давно я тут
****

Репутация: +0/-1
Offline Offline

Сообщений: 279



« Ответ #25 : 25.08.2013, 01:30:44 »

Поменял значение в таблицах — помогло. Пробовал решение с XML, не нашел таких строк в файле (administrator/components/com_zoo или com_widgetkit).
Думаю, на этом можно вопрос считать закрытым. Всем спасибо!
Записан
Newrise
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1



« Ответ #26 : 30.10.2014, 01:59:39 »

Да, только что столкнулся с тем же моментом в Zoo на Joomla 3.x

Если Вы хотите отобразить Zoo для группы Manager, то можете просто вывести стандартный модуль, который в админке отображает приложения Zoo. В самой вкладке "Компоненты" не будет виден Zoo. Но все будет отображено чуть ниже на странице админки.


Меня вот интересует больше, как к Zoo запретить доступ. Как уже правильно сказали, никто не мешает в админке набрать в строке браузера путь к этому компоненту.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet