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

slothworx

  • Осваиваюсь на форуме
  • 15
  • 2 / 0
Вот по этой ссылке нашел некую скудную информацию о том, как добавить новые группы пользователей в J1.5.

Решил создать группу "Partners", которая бы являлась дочерней от группы "Registered" и позволяла бы юзерам этой группы получать доступ к определенным пунктам меню.

1. Сделал SQL-запрос

Код
SET @parent_name = 'Registered';
SET @new_name = 'Partners';

-- Select the parent node to insert after
SELECT @ins_id := id, @ins_lft := lft, @ins_rgt := rgt
FROM jos_core_acl_aro_groups
WHERE name = @parent_name;

SELECT @new_id := MAX(id) + 1 FROM jos_core_acl_aro_groups;

-- Make room for the new node
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 the new node
INSERT INTO jos_core_acl_aro_groups (id,parent_id,name,lft,rgt,value)
VALUES (@new_id,@ins_id,@new_name,@ins_rgt,@ins_rgt+1,"Partners");

2. Чтобы все отображалось корректно, в файле /administrator/components/com_users/views/user/view.html.php в строке 106, а не 112, как указано в оригинале (у меня J 1.5.13) заменил вот это:

Код
 if ( $userGroupName == $myGroupName && $myGroupName == 'administrator' )
   {
      // administrators can't change each other
      $lists['gid'] = '<input type="hidden" name="gid" value="'. $user->get('gid').'" /><strong>'. JText::_( 'Administrator' ).'</strong>';
   }
   else
   {
      $gtree = $acl->get_group_children_tree( null, 'USERS', false );

на это:

Код
 if ( $userGroupName == $myGroupName && $myGroupName == 'administrator' )
   {
      // administrators can't change each other
      $lists['gid'] = '<input type="hidden" name="gid" value="'. $user->get('gid').'" /><strong>'. JText::_( 'Administrator' ).'</strong>';
   }
   else
   {
      $gtree = $acl->get_group_children_tree( null, 'USERS', true);

3. Еще один SQL-запрос для добавлении новой группы:

Код
INSERT INTO `jos_groups` (`id`,`name`) VALUES ('3','Partners')

4. И напоследок следующий код для jos_core_acl_aro_groups:

Код
<?php

mysql_connect("localhost", "xxxx", "xxxxx") or
    die("Could not connect: " . mysql_error());
   mysql_select_db("joomla15");

// 0-> parent_id in Joomla this is the value of the parent_id field of the Root record
// 1-> start the left tree at 1
rebuild_tree ( 0 , 1);


function rebuild_tree($parent_id, $left) {
  

// the right value of this node is the left value + 1
   $right = $left+1;

   // get all children of this node
   $result = mysql_query('SELECT id FROM jos_core_acl_aro_groups '.
                          'WHERE parent_id="'.$parent_id.'";');
   while ($row = mysql_fetch_array($result)) {
       // recursive execution of this function for each
       // child of this node
       // $right is the current right value, which is
       // incremented by the rebuild_tree function
       $right = rebuild_tree($row['id'], $right);
     }

   // we've got the left value, and now that we've processed
   // the children of this node we also know the right value
   mysql_query('UPDATE jos_core_acl_aro_groups SET lft='.$left.', rgt='.
                $right.' WHERE id="'.$parent_id.'";');

   // return the right value of this node + 1
   return $right+1;
}
?>

В итоге я получил в списке групп новую, с названием "Partners", а так же еще один уровень доступа "Partners" (наряду с со стандартными "Все", "Зарегистрированный", "Специальный")

Но! Если залогиниться новым пользователем, добавленным в новую группу, то соответствующий пункт меню он не видит... Где собака порылась?
« Последнее редактирование: 03.11.2009, 18:21:42 от slothworx »
*

balalar

  • Осваиваюсь на форуме
  • 45
  • 1 / 1
не разобрался в чем косяк?
подскажи пожалуйста если да.
*

mahp

  • Захожу иногда
  • 127
  • 4 / 0
  • mahp
slothworx, очень полезная и нужная инфа. Если понимаешь Англ, то спроси буржуев на http://forum.joomla.org/viewtopic.php?f=431&t=262604&start=0
*

AlexKar

  • Захожу иногда
  • 51
  • 2 / 0
Сделал все пошагово (пока на локальном серваке потренировался). Вот этого -
Цитировать
В итоге я получил в списке групп новую, с названием "Partners", а так же еще один уровень доступа "Partners" (наряду с со стандартными "Все", "Зарегистрированный", "Специальный")
полностью достичь не удалось. Новая группа в списке появилась, я даже могу пользователя за ней закрепить. Но уровень доступа не добавился. Как были три, так и остались.
*

siao

  • Захожу иногда
  • 222
  • 3 / 0
  • http://www.svetreiki.ru
noixACL тебе в помощь.
noixACL все создает, группы, уровни, все назначаю и юзеру и в меню. и юзер не видит этого меню...

joomla 1.5.23
« Последнее редактирование: 17.08.2011, 18:56:05 от siao »
*

AlexKar

  • Захожу иногда
  • 51
  • 2 / 0
Я уже где-то на форуме делился опытом. Платные модуль. На локалке работает, на хосте нет. Делал так:
1. Создаю бэкап базы с хоста и заливаю его на локалку
2. На локальном сайте делаю все права доступа, группы и т.д.
3. Создаю бэкап базы с локалки и заливаю его на хост
У меня таким образом все получилось. И никаких хаков кода не надо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как снять блокировку новых пользователей?

Автор hogik

Ответов: 1
Просмотров: 778
Последний ответ 02.04.2016, 11:36:40
от hogik
Не работает добавление новых материалов на сайт. Что делать?

Автор Nightwochter999

Ответов: 3
Просмотров: 993
Последний ответ 25.02.2014, 03:30:19
от МК
Перестала работать регистрация пользователей

Автор inga-izumrud

Ответов: 0
Просмотров: 974
Последний ответ 26.04.2013, 17:46:39
от inga-izumrud
Как включить регистрацию пользователей Joomla 1.5?

Автор salangin

Ответов: 2
Просмотров: 1575
Последний ответ 16.04.2013, 17:04:23
от salangin
Запрет регистрации пользователей Joomla 1.5

Автор GuN

Ответов: 8
Просмотров: 9190
Последний ответ 14.04.2013, 19:56:54
от Qqmber2