Интеграция Joomla ACL

Кто-нибудь знает какой-либо способ интеграции с Joomla ACL, в частности, создавать пользователей и программно регистрировать пользователей в контроллере и модулях пользовательского компонента.

Я искал Google, но либо задаю неправильные вопросы, никто не задокументировал, как это сделать, или это невозможно (что я не верю!)

Почему вы можете спросить ?! — Я разрабатываю приложение единого входа для компонента, который должен регистрировать пользователя в нескольких API при входе в систему. К сожалению, мой клиент также хочет, чтобы это работало с ACL, чтобы они могли отображать контрольный контент в интерфейсной части веб-сайта на основе включен, если пользователь вошел в систему или нет.

Так что мне нужно быть в порядке, чтобы создать свой собственный вид входа в систему и, когда он используется, регистрировать пользователя в различных системах с помощью их API и входить в него (или создавать учетную запись и входить) в Joomla ACL.

2

Решение

Вы можете просто клонировать установленный mod_login для его части входа в систему и использовать некоторую форму приведенного ниже кода для создания учетной записи пользователя:

Вы можете создать пользователя с помощью этого:

require_once('registration.php');
jimport('joomla.user.helper');
jimport('joomla.application.component.modeladmin');
$data = array(
'username'  => 'jdoe',
'name'      => 'Joan Doe',
'email1'    => jdoe@jdoe.com,
'password1' => 'abc123', // First password field
'password2' => 'abc123', // Confirm password field
'block'     => 0,
'params'    => array(
'admin_style'=>'',
'admin_language'=>'',
'language'=>'',
'editor'=>'',
'helpsite'=>'',
'timezone'=>''
)
);
$model = new UsersModelRegistration();
if(!$user = $model->register($data)) {
echo $model->getError();
}

Вы можете войти с этим:

$app = JFactory::getApplication('site');
$credentials = array(
'username' => 'someusername',
'password' => 'somepassword'
);
if(!$app->login($credentials)){
echo 'Logged in';
}else{
echo 'Not logged in';
}
$app->logout();    // Log out with this
$app->close();     // Close the app

Чтобы добавить собственный код в процесс входа в систему, вы можете написать простой плагин User Authentication. (Увидеть Создание плагина аутентификации для Joomla) и вставьте свой код в onAuthenticate() функция.

Чтобы добавить собственный код ПОСЛЕ аутентификации, напишите плагин пользователя (см. Плагин / События / User) и использовать одно из событий, которые там происходят.

Я не был ясно, какие значения ACL хранятся, и получил разъяснения с этим вопрос. Речь идет о разрешениях категории, но ответ может помочь.

2

Другие решения

Других решений пока нет …