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

Discussion in 'Создание расширений для Joomla' started by fiord, Nov 2, 2007.

  1. Offline

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

    Joined:
    Aug 9, 2006
    Messages:
    1
    Likes Received:
    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 Недавно здесь

    Joined:
    Jun 26, 2007
    Messages:
    16
    Likes Received:
    0
    Gender:
    Male
    Ответ: управление доступом к компоненту в joomla 1.5?

    mne toje interesno ...
     
  4. Offline

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

    Joined:
    Sep 2, 2007
    Messages:
    8
    Likes Received:
    0
    Gender:
    Male
    Ответ: управление доступом к компоненту в 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 Недавно здесь

    Joined:
    Sep 12, 2006
    Messages:
    116
    Likes Received:
    10
    Gender:
    Male
    Ответ: управление доступом к компоненту в joomla 1.5?

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

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

    Joined:
    Sep 2, 2007
    Messages:
    8
    Likes Received:
    0
    Gender:
    Male
    Ответ: управление доступом к компоненту в 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 Недавно здесь => Cпециалист <=

    Joined:
    Apr 13, 2007
    Messages:
    3,685
    Likes Received:
    101
    Gender:
    Male
    Ответ: управление доступом к компоненту в joomla 1.5?

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

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

Share This Page

Loading...