LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.05.2012, 20:09:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Как добавить новую группу пользователей, ручками хотя бы  (Прочитано 3404 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
PREMIER
Осваиваюсь на форуме
***

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

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

Сделайте патриотизм своим образом жизни!


« : 15.05.2008, 11:42:25 »

Чуть попозже попробую для Джустины вариант написанный для Joomla, если не кто не успеет ответить сам отвечу на свой вопрос.

Вот этот вариант http://joomlaportal.ru/content/view/1372/68/.

Там описано как ручками добавить новую группу пользователей. Поскольку у Джустины нет пока продвинутых возможностей по разграничению прав, JACLPlus, как сказанно - не работает и не будет работать!!! - хочется найти хоть какой-то выход.

Кто-то уже пробовал предложенный вариант на Джустине? А то может мне не стоит и время терять.  Smiley
Записан
boston
Moderator
*****

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

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



« Ответ #1 : 15.05.2008, 12:35:35 »

Будет работать полностью аналогично Joomla Azn
Записан
PREMIER
Осваиваюсь на форуме
***

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

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

Сделайте патриотизм своим образом жизни!


« Ответ #2 : 23.05.2008, 10:18:16 »

Вот протокол так-сказать:

Вооружившись статьёй http://joomlaportal.ru/content/view/1372/68/ приступил к проверке. Smiley

1. Поставили чистую Джустину 1.1.3.
2. Поставили на неё компонент Ремозитори.
3. Сделал SQL запрос в базу:

Код:
SET @parent_name = 'Public Backend';
SET @new_name = 'DownloadsManager';
 
SELECT @ins_id := group_id, @ins_lft := lft, @ins_rgt := rgt
FROM jos_core_acl_aro_groups
WHERE name = @parent_name;
 
SELECT @new_id := MAX(group_id) + 1 FROM jos_core_acl_aro_groups;
 
UPDATE jos_core_acl_aro_groups SET rgt=rgt+2 WHERE rgt>=@ins_rgt;
UPDATE jos_core_acl_aro_groups SET lft=lft+2 WHERE lft>@ins_rgt;
 
INSERT INTO jos_core_acl_aro_groups (group_id,parent_id,name,lft,rgt)
VALUES (@new_id,@ins_id,@new_name,@ins_rgt,@ins_rgt+1);

4. Открыл файл /administrator/components/com_user/admin.user.php, нашёл в нём
Код:
if (!in_array($row-

>gid,getGIDSChildren($my->gid))) {
и заменил на
Код:
if ($my->gid != 25 && !in_array($row->gid,getGIDSChildren($my->gid))) {

5. Открыл /includes/gacl.class.php после строчки
Код:
$this->_mos_add_acl( 'administration', 'login', 'users', 'manager', null, null ;
добавил
Код:
$this->_mos_add_acl( 'administration', 'login', 'users', 'downloadsmanager', null, null );

6. Строчку
Код:
$this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_media' );
не находим, поэтому предполагаем, что нам подойдёт строчка
Код:
$this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_jwmmxtd' );
и после неё добавляем
Код:
$this->_mos_add_acl( 'administration', 'edit', 'users', 'downloadsmanager', 'components', 'com_remository' );

7. Поскольку написано "Все, пользователи группы DownloadsManager будут иметь доступ к компоненту Remository. Займемся теперь доступностью пункта меню Компоненты" пробуем создать такого пользователя. Пользователя создали, он заходит в админку и действительно пока не видит меню компоненты. Получается пока всё правильно.

8. В /administrator/modules/mod_fullmenu.php ищем строку
Код:
$canManageUsers   = $acl->acl_check( 'administration', 'manage', 'users', $usertype, 'components', 'com_users' );
и о чудо находим целых две таких строки одну в начале файла другую в конце. Из того что дальше написано, что чуть ниже находится
Код:
if ( $installComponents) {
предполагаем, что нам нужна нижняя запись, поэтому после неё добавляем:
Код:
$canEditRemository   = $acl->acl_check( 'administration', 'manage', 'users', $usertype, 'components', 'com_remository' );
$canEditContent = $acl->acl_check( 'administration', 'edit', 'users', $usertype, 'components', 'com_content' );
$canEditMenus = $acl->acl_check( 'administration', 'edit', 'users', $usertype, 'components', 'com_menus' );

9. Ищем
Код:
if ($installComponents) {
не находим, а находим
Код:
if ( $installComponents) {
предполагаем, что это то самое и меняем на
Код:
if ($installComponents || $canEditRemository) {

10. Ищем
Код:
// Content Sub-Menu
, не находим, а находим
Код:
/* Content Sub-Menu */
подозреваем, что это оно и после вставляем
Код:
if ($canEditContent) {
и как сказано в статье "чуть ниже" ищем
Код:
// Components Sub-Menu
находим эту строчку значительно выше, догадываемся, что это не то, и снизу находим
Код:
/* Components Sub-Menu */
, вот после неё вставляем
Код:
}

11. Ищем
Код:
['<img src="../includes/js/ThemeOffice/media.png" />','Media Manager','index2.php?option=com_media',null,'Manage Media Files'],
вместо этого находим
Код:
['<img src="../includes/js/ThemeOffice/media.png" />','Медиа менеджер','index2.php?option=com_jwmmxtd',null,'Управление медиа файлами'],
и меняем её естественно ни как сказано в материале на:
Код:
<?php if ($canEditMenus) { ?>
['<img src="../includes/js/ThemeOffice/media.png" />','Media Manager','index2.php?option=com_media',null,'Manage Media Files'],
<?php } ?>

а на:

Код:
<?php if ($canEditMenus) { ?>
['<img src="../includes/js/ThemeOffice/media.png" />','Медиа менеджер','index2.php?option=com_jwmmxtd',null,'Управление медиа файлами'],
<?php } ?>

12. Ищем
Код:
$manageMenuMan     = $acl->acl_check( 'administration', 'manage', 'users', $usertype, 'components', 'com_menumanager' );
находим почти тоже самое только перед равно меньше пробелов, после добавляем
Код:
$manageMenu     = $acl->acl_check( 'administration', 'manage', 'users', $usertype, 'components', 'com_menus' );

13. В статье сказано "Все, теперь пользователей группы DownloadsManager станет доступно меню Компоненты, в котором будет только один подпункт — Remository. Другие компоненты будут недоступны (за исключением com_content, com_menus
и com_typedcontent)."
Смострим.... снова смотрим.... меню компонентов нет, что-то пошло не так, поэтому идём дальше.

14. В /includes/gacl.class.php после строчки
Код:
//array( 'administration', 'edit', 'users', 'manager', 'modules', 'all' );
вставляем:

Код:
    // access to com_menus
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'super administrator', 'components', 'com_menus' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'administrator', 'components', 'com_menus' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_menus' );
 
    // access to com_content
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'super administrator', 'components', 'com_content' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'administrator', 'components', 'com_content' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_content' );
 
    // access to com_typecontent
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'super administrator', 'components', 'com_typedcontent'

);
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'administrator', 'components', 'com_typedcontent' );
    $this->_mos_add_acl( 'administration', 'edit', 'users', 'manager', 'components', 'com_typedcontent' );

15. В /administrator/components/com_menus/admin.menus.php ищем
Код:
defined( '_VALID_MOS' ) or die( 'Restricted access' );
находим похожее
Код:
defined( '_VALID_MOS' ) or die( 'Прямой вызов файла запрещен' );
после добавляем:

Код:
if (!($acl->acl_check( 'administration', 'edit', 'users', $my->usertype, 'components', 'all' )
    | $acl->acl_check( 'administration', 'edit', 'users', $my->usertype, 'components', 'com_menus' ))) {
  mosRedirect( 'index2.php', _NOT_AUTH );
}

16. В /administrator/components/com_content/admin.content.php ищем
Код:
defined( '_VALID_MOS' ) or die( 'Restricted access' );
снова находим
Код:
defined( '_VALID_MOS' ) or die( 'Прямой вызов файла запрещен' );
после которой добавляем:

Код:
if (!($acl->acl_check( 'administration', 'edit', 'users', $my->usertype, 'components', 'all' )
    | $acl->acl_check( 'administration', 'edit', 'users', $my->usertype, 'components', 'com_content' ))) {
  mosRedirect( 'index2.php', _NOT_AUTH );
}

17. В /administrator/components/com_typedcontent/admin.typedcontent.php снова находим defined( '_VALID_MOS' ) or die( 'Прямой вызов файла запрещен' ); снова после вставляем:

Код:
if (!($acl->acl_check( 'administration', 'edit', 'users', $my->usertype, 'components', 'all' )
    | $acl->acl_check( 'administration', 'edit', 'users', $my->usertype, 'components', 'com_typedcontent' ))) {
  mosRedirect( 'index2.php', _NOT_AUTH );
}

18. Говорят, что всё должно заработать, пробуем... да действительно, не чего редактировать нельзя, но меню "Компоненты" так и не появилось, могу заподозрить, что или сделал что-то не так или, что нужно править ещё что-то, например полазить в настройках отображения меню.

Может кто подскажет, что я не так сделал?
« Последнее редактирование: 23.05.2008, 10:22:59 от PREMIER » Записан
DANic
Новичок
*

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

Сообщений: 3


« Ответ #3 : 16.03.2011, 15:26:10 »

Получилось хоть у кого-нибудь по аналогии этой статьи  создать группу и отредактировать права для joostina?

Актуальна ли это решение или появились более практичные методы решения этой проблемы?
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | 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