пробую создать свой компонент по аналогу к 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. я так понимаю что авторизация не работает потому что компонент я не устанавливал а копировал Подскажите какую таблицу нужно смотреть, или что нужно сделать чтобы для нового компонента заработала авторизация
Ответ: управление доступом к компоненту в joomla 1.5? тоже озадачили переписыванием функционала своих компонентов с 1.* на 1.5... пробую по аналогии переделывать - но сути вот этого выражения Код (CODE): if (!$user->authorize( 'com_banners', 'manage' )) { $mainframe->redirect( 'index.php', JText::_('ALERTNOTAUTH') ); } откуда в 1.5 джумле уши прав растут не понимаю. Компонент установился , правда я контролеера не прикручивал к нему, хотел загрузить его сначала а потом править по ходу пьесы(уж больно он навороченный был сделан на 1.1 - это система создания тестов и анкет на джумле для общественной организации ). Не подскажете логику назначения прав пользователю в админке на компонент? в базе тоже не нашел ничего. Вроде аклы пролазил...
Ответ: управление доступом к компоненту в joomla 1.5? В Joomla!1.5 так и не сделали добавление/изменение прав из админки. Все права жестко прописаны в /libraries/joomla/user/authorization.php. Так что либо дописываете там права доступа к своему компоненту, либо в мамботе или начале компонента берете объект &JFactory::getACL() и добавляете туда нужные права через метод addACL, либо останавливаетесь на проверке по gid или usertype.
Ответ: управление доступом к компоненту в joomla 1.5? Я так попробовал, вроде выходит(если в начале права давать) . Странно что некоторые компоненты работают без этих изысков (не стандартные а устанавливаемые вновь), phocogallary, hellowolrd например. То есть после их установки я сразу могу к ним из админки обращаться. Вроде их код пролазил - ничего похожего на хагинг файла авторизации или предустановленные права перед запуском не обнаружил. Интересно , как? И еще - может поясните, если обладаете информацией, назначение параметров метода Код (CODE): $this->addACL( 'com_user', 'edit', 'users', 'registered', null, null, 'registered' ); А то в описании самого метода как то не очень внятно написано(( там вот так Код (CODE): * * @return bool Return ACL ID of new ACL if successful, FALSE otherewise. * * @param array Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...] * @param array Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...] * @param array Array of Group IDs * @param array Associative array, item={Section Value}, key={Array of Object Values} i.e. ["<Section Value>" => ["<Value 1>", "<Value 2>", "<Value 3>"], ...] * @param array Array of Group IDs * @param int Allow flag * @param int Enabled flag * @param string Return Value * @param string Note * @param string ACL Section Value * @param int ACL ID # Specific Request не растолкуете что какой параметр означает и зачем, если на входе массивы, в функции многократные вызовы метода назначения прав для одного и того же компонента , с различием в группах пользователей?
Ответ: управление доступом к компоненту в joomla 1.5? Мой совет - либо просто поиграй этими функциям, либо не запаривайся. Это под чистую содрали с 1.0.х. А в ней групп и вовсе не было. Что-то нормальное только к версии 2.0 обещают. Пока что можно по таску разруливать.