0 Пользователей и 1 Гость просматривают эту тему.
  • 30 Ответов
  • 122592 Просмотров
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
«Как известно, в Joomla существует фиксированный набор групп пользователей с заранее предопределенными правами на различные функции системы. Однако при создании сайтов возникают задачи, которые требуют наличия дополнительных групп пользователей со специфическими правами. Наиболее распространенным решением этой задачи является использование компонента-хака JACLPlus, но не всегда это уместно. На прошлой неделе мне пришлось решать подобную задачу и в этой статье я расскажу как это было реализовано.»

Полный текст статьи читаем на Joomlaportal.ru: Добавление новой группы пользователей Joomla

Критика, замечания и пожелания приветствуются!
*

briz

  • Осваиваюсь на форуме
  • 21
  • 5 / 0
Профессиональная работа. Действительно, такая фича бывает иногда очень нужна (порой, даже на весьма короткое время): для удаленной совместной работы над каким-либо проектом.
Ждем "продолжение банкета".
А вообще, спасибо за классное расширение, которым, думаю, воспользуются многие.
*

VETERINAR

  • Давно я тут
  • 855
  • 165 / 14
  • Kiss my shiny metal ass!
Статья замечательная. А Вы не подскажете как сделать возможность создавать пользователей с правами "Editor" только для одного раздела? Это была бы маленькая революция в Joomla :)
*

Sergio111

  • Захожу иногда
  • 175
  • 0 / 0
Спасибо!
Статья просто ослепительная!
*

Sergio111

  • Захожу иногда
  • 175
  • 0 / 0
В файле admin.user.php кроме строки, описанной в статье -
Код
 if (!in_array($row->gid,getGIDSChildren($my->gid))) {
которую надо заменить на
Код
 if ($my->gid != 25 && !in_array($row->gid,getGIDSChildren($my->gid))) {
Есть ещё и строка, которая даёт вышеописанную мною ошибку. И она очень похожа на то, о чём Вы пишете.
Код
else if (($obj->gid == $my->gid && !in_array($my->gid, array(24, 25))) || ($obj->gid && !in_array($obj->gid,getGIDSChildren($my->gid)))) {
$msg .= 'Выне можете '. $actionName .' в `'. $this_group .'`. Только пользователи с высшим уровнем привилегий имеют на это право.';
То же сравнение.
Я заменил на
Код
else if (($obj->gid == $my->gid && !in_array($my->gid, array(24, 25))) || ($obj->gid && $my->gid != 25 && !in_array($row->gid,getGIDSChildren($my->gid)))) {
$msg .= 'Выне можете '. $actionName .' в `'. $this_group .'`. Только пользователи с высшим уровнем привилегий имеют на это право.';
Ошибка перестала выскакивать


« Последнее редактирование: 11.03.2008, 17:24:09 от Sergio111 »
*

myorion

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Уважаемый, Smart, статья отличная!
Но, я столкнулся с той же проблемой, что и Sergio111:
Уважаемые, подскажите, пожалуйста, следующее.
Я сделал всё, как рекомендуется в статье.
У меня меню "Компоненты " не  выводится - когда я захожу пользователем группы Sales.
В этом проблема.
Крохотные отличия от статьи:
Я назвал группу не DownloadsManager, а Sales.
И компонент, который мне нужен для редактирования пользователем группы Sales - это Virtuemart.
Т.е., я поменял в статье строку
 $this->_mos_add_acl( 'administration', 'edit', 'users', 'downloadsmanager', 'components', 'com_remository' );
на
$this->_mos_add_acl( 'administration', 'edit', 'users', 'downloadsmanager', 'components', 'com_virtuemart' );
и
переменную назвал $canEditVirtuemart а не  $canEditRemository
Подскажите, пожалуйста, почему у меня меню "Компоненты " не  выводится.
однако мне удалось найти маленькую ошибочку в Вашей статье, из-за которой не выводилось меню "Компоненты".
Поясняю:
Эта строка дает доступ к компоненту на уровне edit:
Код
$this->_mos_add_acl( 'administration', 'edit', 'users', 'downloadsmanager', 'components', 'com_remository' );
а вот эта проверяет имеет ли пользователь доступ к этому компоненту на уровне manage:
Код
$canEditRemository   = $acl->acl_check( 'administration', 'manage', 'users', $usertype, 'components', 'com_remository' );
Вот здесь и не состыковочка получается.
Во-второй строке исправил manage на edit  и все заработало!
*

myorion

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Кстати, поясните, пожалуйста, в чем разница между edit и manage?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
однако мне удалось найти маленькую ошибочку в Вашей статье, из-за которой не выводилось меню "Компоненты"
хм, да вы правы... действительно опечатка (правда сказать честно не очень понятно как она появилась, бо я писал статью и делал модифкацию одновременно).

В любом случае + в репутацию за внимательность!

Кстати, поясните, пожалуйста, в чем разница между edit и manage?
на самом деле это просто две абстрактные группы прав, смысловую нагрузку они могут иметь только непосредственно в проверках в самом компоненте. На уровне ACL-ядра никакой разницы между этими действиями нет, и иерархии доступных действий тоже нет.
*

odessa

  • Осваиваюсь на форуме
  • 24
  • 12 / 5
  • Пью, как лошадь, а напиваюсь, как свинья.
А Вы не подскажете как сделать возможность создавать пользователей с правами "Editor" только для одного раздела?

До сих пор остается актуальным вопросмом. ;-)

Очень жаль что в этой ветке никто не поделился ответом на этот вопрос, неужели нет готового решения и каждый выкручивается как может? Или ответ только за wmz ? :-)
*

odessa

  • Осваиваюсь на форуме
  • 24
  • 12 / 5
  • Пью, как лошадь, а напиваюсь, как свинья.
Пробуй SSRRN Free Content Access Control  http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,5986/Itemid,35/ , мне подошло? только он под 1.5, а не под 1.0.* думаю что в этом же разделе что то для себя найдешь.
*

Unknown_error

  • Новичок
  • 7
  • 0 / 0
Здравствуйте, спасибо за статью. присоединяюсь к вопросу: в 1.0.15 будет ли это работать? ( чтобы не начинать код изменять напрасно ),
в разделе новости и проч. я так понимаю тоже можно будет все эти группы видеть новые и открывать им доступ к той или иной статье?

нельзя ли подобное реализовать с помощью community builder ?
нет ли готового компонента для реализации этой функции - добавление новой группы пользователя?
*

M.C.

  • Осваиваюсь на форуме
  • 34
  • 2 / 0
статья отменная, НО.... это пипец, что управление группами и правами групп не включено в админку джумлы... сам только что столкнулся и офигел!!!

Добрый день.
Сделал всё как в статье написано+рекомендации с форума почитал, внёс изменения.
Меню "Компоненты" не появилось.
Внёс изменения в gacl.class на 177 строке $this->_mos_add_acl( 'administration', 'manage', 'users', 'newgroup', 'components', 'com_datsogallery' ); Пробовал менять 'edit' на 'manage'. Не работает.
Также вносил изменения в mod_fullmenu на 50,51,52 строках и 329,330,331
50-> $canEditDastogallery  = $acl->acl_check( 'administration', 'manage', 'users', $usertype, 'components', 'com_datsogallery' );
51-> $canEditContent = $acl->acl_check( 'administration', 'manage', 'users', $usertype, 'components', 'com_content' );
52-> $canEditMenus = $acl->acl_check( 'administration', 'manage', 'users', $usertype, 'components', 'com_menus' );

329-> $canEditDastogallery  = $acl->acl_check( 'administration', 'manage', 'users', $usertype, 'components', 'com_datsogallery' );
329-> $canEditContent = $acl->acl_check( 'administration', 'manage', 'users', $usertype, 'components', 'com_content' );
329-> $canEditMenus = $acl->acl_check( 'administration', 'manage', 'users', $usertype, 'components', 'com_menus' );
В статье было написано ->
В файле /administrator/modules/mod_fullmenu.php находим строчку:
$canManageUsers   = $acl->acl_check( 'administration', 'manage', 'users', $usertype, 'components', 'com_users' );
и добавляем после нее:
$canEditRemository   = $acl->acl_check( 'administration', 'edit', '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' );

У меня эта строка встречается в двух местах.
49->              $canManageUsers    = $acl->acl_check( 'administration', 'manage', 'users', $usertype, 'components', 'com_users' );
321->            $canManageUsers    = $acl->acl_check( 'administration', 'manage', 'users', $usertype, 'components', 'com_users' );

Что можно сделать, чтоб меню "Компоненты" появилось?
Joomla версии 1.0.15 LavraEdition.
*

webkruter

  • Новичок
  • 5
  • 0 / 0
Присоединяюсь к просьбе. Очень нужно создать, например, менеджеров для конкретных разделов
И ТИШИНА!
Реально  с этим это поможет очень и облегчит жизнь!
У меня тоже щас такая проблем есть 50 филиалов они должны добовлять новости только в свою категорию и не видеть всё остальное.... Я устал за ними следить! Пока не нашел ничего достойного чтод дать им отдельный логин и пароль и убрать все что им не надо!
*

Archy

  • Новичок
  • 4
  • 0 / 0
подскажите как сделать тоже самое в 1.5
*

xobot

  • Захожу иногда
  • 125
  • 12 / 0
подскажите как сделать тоже самое в 1.5
возможно вам поможет вот эта тема: http://joomlaforum.ru/index.php/topic,30200.0.html
Нужно лечиться в молодости, что бы не болеть в старости.
*

xander kej

  • Захожу иногда
  • 233
  • 3 / 0
  • Keep working
У меня такой вопрос.
А как то попроще можно добавить группу, копию Registered? Все такиеже права, только название другое.
Заранее спасибо
*

xander kej

  • Захожу иногда
  • 233
  • 3 / 0
  • Keep working
оказывается для моей цели хватило одного запроса, с изменениями фронтеда

Интересует можно ли расширить количество групп в таблице jos_groups, что бы для пунктов меню и модулей иметь возможность выставлять доступ?
*

balalar

  • Осваиваюсь на форуме
  • 45
  • 1 / 1
оказывается для моей цели хватило одного запроса, с изменениями фронтеда
подскажи пожалуйста как сделал
*

theWurm

  • Захожу иногда
  • 51
  • 0 / 8
оказывается для моей цели хватило одного запроса, с изменениями фронтеда

решение в студию пожалуйстаз...

заранее спасибо!
*

givchik

  • Осваиваюсь на форуме
  • 13
  • 2 / 0
Прежде всего всем привет, очень признателен за работу которую вы делаете.  :D

Столкнулся с Joomla по необходимости, а теперь сел за изучение программирования, ну как минимум синтаксиса языков. :o

Задача которая теплица в моей душе выглядит приблизительно так:
Нужно создать сайт
1. с рядом независимых между собой тем
 - предположительно разные БД, или префиксы БД и организовать это через субдомены,
2. с пользователями этих «сайтов-тем» которые будут иметь сквозную регистрацию,
3. но доступ на редактирование статей только своей темы
 - желательно, правда вопрос насколько воплотимо. Можно воспользоваться, smart, Вашим советом, в Этой теме, и с помощью компонента или в ручную установить права для каждой группы отдельно. Главное что б эти группы были одинаковы для всех сайтов, тогда пользователь который зарегистрировался на сайте попадет в присвоенную ему группу.
4. Туда же приплести форум
 - Самый оптимальный способ на мой взгляд использовать предложение spray07 с элементом «MySQL Auth» в теме «Множество сайтов Joomla с общей базой пользователей».
Возникает только несколько вопросов!
«Поставил phpbb2 , в нем хранится база пользователей, на всех дочерних сайтах поставил этот модуль для внешней авторизации.» - как в таком случае выглядит профиль пользователя на посещенном ним сайте (копируются данные или нет)?
И что делать с Community Builder-ом к примеру?

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

Собственно site.com стартовая и на ней происходит основная регистрация (если я правильно вник в смысл слов «Поставил phpbb2 , в нем хранится база пользователей»), а на tema1.site.com и остальных ему подобных, включая форум forum.site.com – авторизация. В таком случае для восстановления пароля или регистрации на этих «сайтах-темах» ссылка на главный site.com

PS: Буду признателен за помощь в решении задачи, коллективным умом – ну к примеру тему под это выделить а там гляди и до «how to» доберемся. *DRINK*

Отдельно прошу прощения если влез не в тот топик потому что у меня этот вопрос связан с Joomla 1.5.х просто мысли которые мне понравились находятся здесь и в теме указной выше но там "постить" не получится :(
« Последнее редактирование: 27.05.2010, 19:07:44 от givchik »

В joomla1,5 не работает.
Начиная с самого начала.
Первый пункт - база ругается
Код
Ошибка
SQL-запрос:

SELECT @ins_id := group_id, @ins_lft := lft, @ins_rgt := rgt
FROM jos_core_acl_aro_groups
WHERE name = @parent_name ;


Ответ MySQL:

#1054 - Unknown column 'group_id' in 'field list'

Вот и вся любовь!

В joomla1,5 не работает.
Начиная с самого начала.
Первый пункт - база ругается
Код
Ошибка
SQL-запрос:

SELECT @ins_id := group_id, @ins_lft := lft, @ins_rgt := rgt
FROM jos_core_acl_aro_groups
WHERE name = @parent_name ;


Ответ MySQL:

#1054 - Unknown column 'group_id' in 'field list'

Вот и вся любовь!

В 1.5 Вместо Group_id - просто id. Обнаружил путем простого просмотра кода SQL и структуры изменяемой таблицы
*

tierex

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Всё таки как же с Joomla 1.5?
С базой данных всё ок, а вот даже давать элементарно права на просмотр статей этим созданным группам нет возможности. =(
Кто-нибудь разобрался?
*

kubida

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Задача для Joomla 1.0

Нужно создать 2 группы с такими же привилегиями как у группы  *  Registered

Цитировать
Registered Зарегистрированные пользователи не могут создавать, редактировать или публиковать информацию на сайте. Они могут добавлять новые ссылки для публикации и они имеют доступ к закрытым участкам сайта, недоступным для гостей. 


Но при логине одна группа видела одни модули и материалы, вторая другие. Чтоб при добавлении материала и меню были Уровень доступа: Участники 1 и Участники 2.
*

BRIGADIR

  • Захожу иногда
  • 58
  • 0 / 0
  Здравствуйте  у меня  такой вопрос, тему я прочитал и по ссылочке прошол из первого поста вроде все понятно но хочется сначало убедится прежде чем наломать дров. Мне нужно создать новую группу пользователей  у которых будут точно такиеже права как и у Author но только с другим названием например new group.  Если я все правильно понял то мне нужно сделать такой запрос  SQL.



SET @parent_name = 'Author';
SET @new_name = 'new group';
 
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);


 Подскажите пожайлуста ато не хочется опять ченить запороть
*

Zoyberg

  • Новичок
  • 2
  • 0 / 0
А мог ли кто-нибудь подсказать КАК новичку слабо разбирающемуся в SQL продублировать группу пользователей. конкретно USERS
За излишнюю подробность только спасибо  ^-^

оказывается для моей цели хватило одного запроса, с изменениями фронтеда
Не поделитесь подробной информацией - как реализовали "А как то попроще можно добавить группу, копию Registered? Все такиеже права, только название другое" ?
*

baloon

  • Захожу иногда
  • 369
  • 13 / 0
Есть подобная инструкция для версии 1.5?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Миграция с Joomla 1.0.x на Joomla 1.5.x (mtwmigrator)

Автор spot

Ответов: 359
Просмотров: 234596
Последний ответ 29.07.2022, 10:47:52
от Dunkan
Как убрать цикличиские ссылки Joomla 1.0?

Автор p4o1

Ответов: 4
Просмотров: 8656
Последний ответ 13.12.2019, 11:31:05
от vest
Восстановление пункта меню админки в Joomla 1.0.15

Автор Vicom

Ответов: 0
Просмотров: 4498
Последний ответ 15.07.2017, 11:36:04
от Vicom
сколько стоит обновить Joomla 1 на Joomla 3* нужна помощь

Автор zvi

Ответов: 10
Просмотров: 3692
Последний ответ 16.02.2016, 11:12:47
от zvi
Joomla и TopServer 2.1

Автор frimen

Ответов: 3
Просмотров: 10606
Последний ответ 25.02.2015, 20:28:30
от m1