управление доступом к компоненту в joomla 1.5?

Тема в разделе "Создание расширений для Joomla", создана пользователем fiord, 02.11.2007.

  1. Offline

    fiord Недавно здесь

    Регистрация:
    09.08.2006
    Сообщения:
    1
    Симпатии:
    0
    пробую создать свой компонент по аналогу к com_banners.
    В таблице jos_components создал структуру компонента, далее создал папку administrator\components\com_summit\
    в которую скопировал файлы с com_banners, сделал правки в файлах, чтобы компонент работал под новым именем.
    Столкнулся с следующей проблемой
    если я в новом компоненте оставляю
    $user = & JFactory::getUser();
    if (!$user->authorize( 'com_banners', 'manage' )) {
    $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') );
    }
    а если меняю на
    $user = & JFactory::getUser();
    if (!$user->authorize( 'com_summit', 'manage' )) {
    $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') );
    }

    то врезультате перехода на компонент получаю
    You are not authorized to view this resource.

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

    wmaster Недавно здесь

    Регистрация:
    26.06.2007
    Сообщения:
    16
    Симпатии:
    0
    Пол:
    Мужской
    Ответ: управление доступом к компоненту в joomla 1.5?

    mne toje interesno ...
     
  4. Offline

    Barmas Недавно здесь

    Регистрация:
    02.09.2007
    Сообщения:
    8
    Симпатии:
    0
    Пол:
    Мужской
    Ответ: управление доступом к компоненту в joomla 1.5?

    тоже озадачили переписыванием функционала своих компонентов с 1.* на 1.5... пробую по аналогии переделывать - но сути вот этого выражения
    Код (CODE):
    1. if (!$user->authorize( 'com_banners', 'manage' )) {
    2. $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') );
    3. }


    откуда в 1.5 джумле уши прав растут не понимаю. Компонент установился , правда я контролеера не прикручивал к нему, хотел загрузить его сначала а потом править по ходу пьесы(уж больно он навороченный был сделан на 1.1 - это система создания тестов и анкет на джумле для общественной организации ). Не подскажете логику назначения прав пользователю в админке на компонент?
    в базе тоже не нашел ничего. Вроде аклы пролазил...
     
  5. Physicist
    Offline

    Physicist Недавно здесь

    Регистрация:
    12.09.2006
    Сообщения:
    116
    Симпатии:
    9
    Пол:
    Мужской
    Ответ: управление доступом к компоненту в joomla 1.5?

    В Joomla!1.5 так и не сделали добавление/изменение прав из админки. Все права жестко прописаны в /libraries/joomla/user/authorization.php. Так что либо дописываете там права доступа к своему компоненту, либо в мамботе или начале компонента берете объект &JFactory::getACL() и добавляете туда нужные права через метод addACL, либо останавливаетесь на проверке по gid или usertype.
     
    Barmas нравится это.
  6. Offline

    Barmas Недавно здесь

    Регистрация:
    02.09.2007
    Сообщения:
    8
    Симпатии:
    0
    Пол:
    Мужской
    Ответ: управление доступом к компоненту в joomla 1.5?

    Я так попробовал, вроде выходит(если в начале права давать) . Странно что некоторые компоненты работают без этих изысков (не стандартные а устанавливаемые вновь), phocogallary, hellowolrd например.
    То есть после их установки я сразу могу к ним из админки обращаться.
    Вроде их код пролазил - ничего похожего на хагинг файла авторизации или предустановленные права перед запуском не обнаружил. Интересно , как?

    И еще - может поясните, если обладаете информацией, назначение параметров метода
    Код (CODE):
    1. $this->addACL( 'com_user', 'edit', 'users', 'registered', null, null, 'registered' );

    А то в описании самого метода как то не очень внятно написано(( там вот так
    Код (CODE):
    1. *
    2.      * @return bool Return ACL ID of new ACL if successful, FALSE otherewise.
    3.      *
    4.      * @param array Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
    5.      * @param array Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
    6.      * @param array Array of Group IDs
    7.      * @param array Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...]
    8.      * @param array Array of Group IDs
    9.      * @param int Allow flag
    10.      * @param int Enabled flag
    11.      * @param string Return Value
    12.      * @param string Note
    13.      * @param string ACL Section Value
    14.      * @param int ACL ID # Specific Request


    не растолкуете что какой параметр означает и зачем, если на входе массивы, в функции многократные вызовы метода назначения прав для одного и того же компонента , с различием в группах пользователей?
     
  7. Dead Krolik
    Offline

    Dead Krolik специалист

    Регистрация:
    13.04.2007
    Сообщения:
    3 688
    Симпатии:
    101
    Пол:
    Мужской
    Ответ: управление доступом к компоненту в joomla 1.5?

    Мой совет - либо просто поиграй этими функциям, либо не запаривайся. Это под чистую содрали с 1.0.х. А в ней групп и вовсе не было.

    Что-то нормальное только к версии 2.0 обещают. Пока что можно по таску разруливать.
     

Поделиться этой страницей

Загрузка...