Кто-нибудь знает какой-либо способ интеграции с Joomla ACL, в частности, создавать пользователей и программно регистрировать пользователей в контроллере и модулях пользовательского компонента.
Я искал Google, но либо задаю неправильные вопросы, никто не задокументировал, как это сделать, или это невозможно (что я не верю!)
Почему вы можете спросить ?! — Я разрабатываю приложение единого входа для компонента, который должен регистрировать пользователя в нескольких API при входе в систему. К сожалению, мой клиент также хочет, чтобы это работало с ACL, чтобы они могли отображать контрольный контент в интерфейсной части веб-сайта на основе включен, если пользователь вошел в систему или нет.
Так что мне нужно быть в порядке, чтобы создать свой собственный вид входа в систему и, когда он используется, регистрировать пользователя в различных системах с помощью их API и входить в него (или создавать учетную запись и входить) в Joomla ACL.
Вы можете просто клонировать установленный 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 хранятся, и получил разъяснения с этим вопрос. Речь идет о разрешениях категории, но ответ может помочь.
Других решений пока нет …