|
smart
|
 |
« : 25.07.2007, 11:28:02 » |
|
«Как известно, в Joomla существует фиксированный набор групп пользователей с заранее предопределенными правами на различные функции системы. Однако при создании сайтов возникают задачи, которые требуют наличия дополнительных групп пользователей со специфическими правами. Наиболее распространенным решением этой задачи является использование компонента-хака JACLPlus, но не всегда это уместно. На прошлой неделе мне пришлось решать подобную задачу и в этой статье я расскажу как это было реализовано.» Полный текст статьи читаем на Joomlaportal.ru: Добавление новой группы пользователей JoomlaКритика, замечания и пожелания приветствуются!
|
|
|
|
|
Записан
|
|
|
|
| |
briz
Осваиваюсь на форуме
 
Репутация: +5/-0
Offline
Сообщений: 25
|
 |
« Ответ #1 : 26.07.2007, 09:57:55 » |
|
Профессиональная работа. Действительно, такая фича бывает иногда очень нужна (порой, даже на весьма короткое время): для удаленной совместной работы над каким-либо проектом. Ждем "продолжение банкета". А вообще, спасибо за классное расширение, которым, думаю, воспользуются многие.
|
|
|
|
|
Записан
|
|
|
|
|
VETERINAR
|
 |
« Ответ #2 : 12.01.2008, 03:19:06 » |
|
Статья замечательная. А Вы не подскажете как сделать возможность создавать пользователей с правами "Editor" только для одного раздела? Это была бы маленькая революция в Joomla 
|
|
|
|
|
Записан
|
|
|
|
Sergio111
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 99
|
 |
« Ответ #3 : 11.03.2008, 16:19:36 » |
|
Спасибо! Статья просто ослепительная!
|
|
|
|
|
Записан
|
|
|
|
Sergio111
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 99
|
 |
« Ответ #4 : 11.03.2008, 17:49:05 » |
|
В файле 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, 18:24:09 от Sergio111 »
|
Записан
|
|
|
|
myorion
Захожу иногда

Репутация: +1/-0
Offline
Сообщений: 11
|
 |
« Ответ #5 : 15.07.2008, 22:20:06 » |
|
Уважаемый, 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
Захожу иногда

Репутация: +1/-0
Offline
Сообщений: 11
|
 |
« Ответ #6 : 15.07.2008, 22:23:33 » |
|
Кстати, поясните, пожалуйста, в чем разница между edit и manage?
|
|
|
|
|
Записан
|
|
|
|
|
smart
|
 |
« Ответ #7 : 16.07.2008, 10:28:08 » |
|
однако мне удалось найти маленькую ошибочку в Вашей статье, из-за которой не выводилось меню "Компоненты" хм, да вы правы... действительно опечатка (правда сказать честно не очень понятно как она появилась, бо я писал статью и делал модифкацию одновременно). В любом случае + в репутацию за внимательность! Кстати, поясните, пожалуйста, в чем разница между edit и manage? на самом деле это просто две абстрактные группы прав, смысловую нагрузку они могут иметь только непосредственно в проверках в самом компоненте. На уровне ACL-ядра никакой разницы между этими действиями нет, и иерархии доступных действий тоже нет.
|
|
|
|
|
Записан
|
|
|
|
odessa
Захожу иногда

Репутация: +12/-5
Offline
Пол: 
Сообщений: 24
Пью, как лошадь, а напиваюсь, как свинья.
|
 |
« Ответ #8 : 01.11.2008, 02:26:01 » |
|
А Вы не подскажете как сделать возможность создавать пользователей с правами "Editor" только для одного раздела?
До сих пор остается актуальным вопросмом. ;-)
Очень жаль что в этой ветке никто не поделился ответом на этот вопрос, неужели нет готового решения и каждый выкручивается как может? Или ответ только за wmz ? :-)
|
|
|
|
|
Записан
|
|
|
|
odessa
Захожу иногда

Репутация: +12/-5
Offline
Пол: 
Сообщений: 24
Пью, как лошадь, а напиваюсь, как свинья.
|
 |
« Ответ #9 : 08.11.2008, 13:33:57 » |
|
Пробуй 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
Новичок
Репутация: +0/-0
Offline
Сообщений: 8
|
 |
« Ответ #10 : 28.11.2008, 12:36:27 » |
|
Здравствуйте, спасибо за статью. присоединяюсь к вопросу: в 1.0.15 будет ли это работать? ( чтобы не начинать код изменять напрасно ), в разделе новости и проч. я так понимаю тоже можно будет все эти группы видеть новые и открывать им доступ к той или иной статье?
нельзя ли подобное реализовать с помощью community builder ? нет ли готового компонента для реализации этой функции - добавление новой группы пользователя?
|
|
|
|
|
Записан
|
|
|
|
M.C.
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 43
|
 |
« Ответ #11 : 25.04.2009, 19:05:48 » |
|
статья отменная, НО.... это пипец, что управление группами и правами групп не включено в админку джумлы... сам только что столкнулся и офигел!!!
|
|
|
|
|
Записан
|
|
|
|
|
DerGordon
Гость
|
 |
« Ответ #12 : 23.10.2009, 09:46:24 » |
|
Добрый день. Сделал всё как в статье написано+рекомендации с форума почитал, внёс изменения. Меню "Компоненты" не появилось. Внёс изменения в 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
Новичок
Репутация: +0/-0
Offline
Сообщений: 5
|
 |
« Ответ #13 : 29.10.2009, 12:57:18 » |
|
Присоединяюсь к просьбе. Очень нужно создать, например, менеджеров для конкретных разделов
И ТИШИНА! Реально с этим это поможет очень и облегчит жизнь! У меня тоже щас такая проблем есть 50 филиалов они должны добовлять новости только в свою категорию и не видеть всё остальное.... Я устал за ними следить! Пока не нашел ничего достойного чтод дать им отдельный логин и пароль и убрать все что им не надо!
|
|
|
|
|
Записан
|
|
|
|
Archy
Новичок
Репутация: +0/-0
Offline
Сообщений: 5
|
 |
« Ответ #14 : 17.11.2009, 02:53:21 » |
|
подскажите как сделать тоже самое в 1.5
|
|
|
|
|
Записан
|
|
|
|
xobot
JoomlaPortal News
 
Репутация: +12/-0
Offline
Пол: 
Сообщений: 131
|
 |
« Ответ #15 : 17.11.2009, 03:12:37 » |
|
подскажите как сделать тоже самое в 1.5
возможно вам поможет вот эта тема: http://joomlaforum.ru/index.php/topic,30200.0.html
|
|
|
|
|
Записан
|
|
|
|
xander kej
Давно я тут
  
Репутация: +3/-0
Offline
Пол: 
Сообщений: 239
Keep working
|
 |
« Ответ #16 : 21.12.2009, 19:34:22 » |
|
У меня такой вопрос. А как то попроще можно добавить группу, копию Registered? Все такиеже права, только название другое. Заранее спасибо
|
|
|
|
|
Записан
|
|
|
|
xander kej
Давно я тут
  
Репутация: +3/-0
Offline
Пол: 
Сообщений: 239
Keep working
|
 |
« Ответ #17 : 22.12.2009, 14:32:39 » |
|
оказывается для моей цели хватило одного запроса, с изменениями фронтеда
|
|
|
|
|
Записан
|
|
|
|
|
wypuk
Гость
|
 |
« Ответ #18 : 25.01.2010, 21:09:53 » |
|
Интересует можно ли расширить количество групп в таблице jos_groups, что бы для пунктов меню и модулей иметь возможность выставлять доступ?
|
|
|
|
|
Записан
|
|
|
|
balalar
Осваиваюсь на форуме
 
Репутация: +1/-1
Offline
Сообщений: 46
|
 |
« Ответ #19 : 18.02.2010, 23:13:45 » |
|
оказывается для моей цели хватило одного запроса, с изменениями фронтеда
подскажи пожалуйста как сделал
|
|
|
|
|
Записан
|
|
|
|
theWurm
Осваиваюсь на форуме
 
Репутация: +0/-8
Offline
Сообщений: 65
|
 |
« Ответ #20 : 03.05.2010, 10:45:23 » |
|
оказывается для моей цели хватило одного запроса, с изменениями фронтеда
решение в студию пожалуйстаз... заранее спасибо!
|
|
|
|
|
Записан
|
|
|
|
givchik
Захожу иногда

Репутация: +2/-0
Offline
Пол: 
Сообщений: 16
|
 |
« Ответ #21 : 27.05.2010, 18:47:58 » |
|
Прежде всего всем привет, очень признателен за работу которую вы делаете.  Столкнулся с Joomla по необходимости, а теперь сел за изучение программирования, ну как минимум синтаксиса языков.  Задача которая теплица в моей душе выглядит приблизительно так: Нужно создать сайт 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» доберемся.  Отдельно прошу прощения если влез не в тот топик потому что у меня этот вопрос связан с Joomla 1.5.х просто мысли которые мне понравились находятся здесь и в теме указной выше но там "постить" не получится 
|
|
|
|
« Последнее редактирование: 27.05.2010, 19:07:44 от givchik »
|
Записан
|
|
|
|
|
trainer_ussr
Гость
|
 |
« Ответ #22 : 02.07.2010, 11:57:50 » |
|
В 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'
Вот и вся любовь!
|
|
|
|
|
Записан
|
|
|
|
|
euginewm
Гость
|
 |
« Ответ #23 : 17.08.2010, 04:20:13 » |
|
В 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
Новичок
Репутация: +0/-0
Offline
Пол: 
Сообщений: 9
|
 |
« Ответ #24 : 02.09.2010, 21:37:53 » |
|
Всё таки как же с Joomla 1.5? С базой данных всё ок, а вот даже давать элементарно права на просмотр статей этим созданным группам нет возможности. =( Кто-нибудь разобрался?
|
|
|
|
|
Записан
|
|
|
|
kubida
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 17
|
 |
« Ответ #25 : 12.10.2010, 19:31:01 » |
|
Задача для Joomla 1.0 Нужно создать 2 группы с такими же привилегиями как у группы * Registered * Registered Зарегистрированные пользователи не могут создавать, редактировать или публиковать информацию на сайте. Они могут добавлять новые ссылки для публикации и они имеют доступ к закрытым участкам сайта, недоступным для гостей. Но при логине одна группа видела одни модули и материалы, вторая другие. Чтоб при добавлении материала и меню были Уровень доступа: Участники 1 и Участники 2.
|
|
|
|
|
Записан
|
|
|
|
BRIGADIR
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Пол: 
Сообщений: 58
|
 |
« Ответ #26 : 09.03.2011, 19:58:01 » |
|
Здравствуйте у меня такой вопрос, тему я прочитал и по ссылочке прошол из первого поста вроде все понятно но хочется сначало убедится прежде чем наломать дров. Мне нужно создать новую группу пользователей у которых будут точно такиеже права как и у 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
Новичок
Репутация: +0/-0
Offline
Сообщений: 2
|
 |
« Ответ #27 : 28.07.2011, 17:54:18 » |
|
А мог ли кто-нибудь подсказать КАК новичку слабо разбирающемуся в SQL продублировать группу пользователей. конкретно USERS За излишнюю подробность только спасибо 
|
|
|
|
|
Записан
|
|
|
|
|
mobcomm
Гость
|
 |
« Ответ #28 : 17.11.2011, 18:47:39 » |
|
оказывается для моей цели хватило одного запроса, с изменениями фронтеда
Не поделитесь подробной информацией - как реализовали "А как то попроще можно добавить группу, копию Registered? Все такиеже права, только название другое" ?
|
|
|
|
|
Записан
|
|
|
|
baloon
Давно я тут
  
Репутация: +13/-0
Offline
Пол: 
Сообщений: 388
|
 |
« Ответ #29 : 07.02.2012, 14:50:02 » |
|
Есть подобная инструкция для версии 1.5?
|
|
|
|
|
Записан
|
|
|
|
|