permission_denied

Привет, всё просто код ниже возвращает permission_denied. Почему кто знает ответьте?
<?php
// Массив с данными пользователя    
$data = array(
    'username' => $username,
    'email' => 'example@email.ru',
    'mobilephone' => $phone,
    'active' => true,
    'groups' => $group
);
// запуск процессора
$response = $modx->runProcessor('/security/user/create', $data);
// если есть ошибки выводим ошибки, если нет то пользователь зарегистрирован
if ($response->isError()) {
       $modx->log(1, 'REG ERROR ' . $response->getMessage()); //ошибка здесь
       $res =  json_encode(['registration' => 'false', 'message' =>  $response->getMessage()]);
} else {
    $modx->log(1, 'USER CREATE');
    $user = $modx->getObject('modUser', array('username' => $username));
    if( $user ){      
        if($group == 3){
            $user->set('active', 0);
        }
        $user->save();
    }   
    return json_encode(['message' =>  'Пользователь создан', 'registration' => 'true']);
}
Артур
14 мая 2020, 18:17
modx.pro
64
0

Комментарии: 2

Сергей Шлоков
15 мая 2020, 09:03
0
Ну вроде очевидно. Нет прав у текущего пользователя на данную операцию. В процессорах при работе с объектами системы предусмотрена проверка прав.
class modUserCreateProcessor extends modObjectCreateProcessor {
    ...
    public $permission = 'new_user';
Как видим, в данном процессоре проверяется наличие права «new_user» у текущего пользователя. Так что, если нужны системные события, встроенная вадидация, то решайте проблему с текущим юзером. Если всё это не нужно, то пользуйтесь методом $modx->newObject(«modUser», []).
    Артур
    15 мая 2020, 11:02
    0
    Тааак, я вызываю этот процессор с фронта, получается делаю я это как анонимный пользователь, т.е. чтобы работать через процессор надо дать анониму разрешение на создание нового пользователя? Или есть другое решение?
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2