Как в консольном приложении получить доступ к Yii::$app->user

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
taxist
Сообщения: 26
Зарегистрирован: 2014.02.09, 16:33

Как в консольном приложении получить доступ к Yii::$app->user

Сообщение taxist »

Добрый день, я прекрасно понимаю что у консольного приложения нет юзера, но задача такова, что нужно от его имени сделать некие действия, как можно зная id юзера, "залогинить" его.
Пробовал вариант:

Код: Выделить всё

Yii::$app->user->login(Yii::$app->user->identity->findIdentity(61));
естественно ругается что нет такого компонента в приложении, если в конфиге пытаюсь его добавить стандартными:

Код: Выделить всё

    'components' => [
        'user'            => [
            'identityClass'   => 'common\models\User',
            'enableAutoLogin' => true,
        ],
Ругается что не указан класс для компонента...
Может у кого есть успешный опыт в данном вопросе?
astronin
Сообщения: 606
Зарегистрирован: 2012.01.30, 17:46

Re: Как в консольном приложении получить доступ к Yii::$app->user

Сообщение astronin »

а зачем логинить в консоле?
тут лучше использовать web
taxist
Сообщения: 26
Зарегистрирован: 2014.02.09, 16:33

Re: Как в консольном приложении получить доступ к Yii::$app->user

Сообщение taxist »

нужно написать робот, который по крону будет забирать почту и складывать в базу, web такое не очень хочется выносить
astronin
Сообщения: 606
Зарегистрирован: 2012.01.30, 17:46

Re: Как в консольном приложении получить доступ к Yii::$app->user

Сообщение astronin »

а зачем вам тогда login?
Аватара пользователя
vitalik1183
Сообщения: 1675
Зарегистрирован: 2014.07.01, 08:42

Re: Как в консольном приложении получить доступ к Yii::$app->user

Сообщение vitalik1183 »

и какое отношение к этому имеет авторизация в yii?
Yii2!
taxist
Сообщения: 26
Зарегистрирован: 2014.02.09, 16:33

Re: Как в консольном приложении получить доступ к Yii::$app->user

Сообщение taxist »

как минимум для использования поведения, креатором и апдейтером письма должен быть юзер, в модели прописаны поведения, которые проставляют эти поля из Yii::$app->user.
taxist
Сообщения: 26
Зарегистрирован: 2014.02.09, 16:33

Re: Как в консольном приложении получить доступ к Yii::$app->user

Сообщение taxist »

сразу скажу что письма раскладываются в несколько таблиц и у каждого нужно прописать created_by и updated_by, так что отказываться от поведений не лучший вариант
astronin
Сообщения: 606
Зарегистрирован: 2012.01.30, 17:46

Re: Как в консольном приложении получить доступ к Yii::$app->user

Сообщение astronin »

боюсь вам придется добавить к вашим методам параметр $user = null и проверять его в теле функции...
или какой-то компонент сделать, где будите хранить User для глобального использования

но login тут вам вообще ни к чему, от него не зависят ни поведения ни что либо другое в AR
chesar
Сообщения: 514
Зарегистрирован: 2013.04.10, 17:49

Re: Как в консольном приложении получить доступ к Yii::$app->user

Сообщение chesar »

Ну у вас же user_id статичен, так и ставьте константу в аттрибут модели.
Аватара пользователя
jilizart
Сообщения: 82
Зарегистрирован: 2010.04.22, 18:56
Контактная информация:

Re: Как в консольном приложении получить доступ к Yii::$app->user

Сообщение jilizart »

Известен user_id, отвяжи методы модели от webUser компонента, пускай они принимают user_id :)
Ответить