Как я могу заставить текущего пользователя выполнить команду Laravel? - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь создать пользовательскую конфигурацию, которая добавляется в мою конфигурацию Laravel при загрузке. Я создал ремесленную команду, которая позволяет разработчикам переводить сервер в режим «тест» и «живой». Это должно вынудить API использовать тестовые ключи вместо живых ключей, что прекрасно работает.

public function handle()
{
    switch(strtoupper($this->argument('m'))) {
        case 'LIVE':
            \DB::table('server_mode')->where('id', 1)->update([
                'mode' => true,
                'verified_by' => 'Server'
            ]);
            $this->info('Server is now in LIVE mode');
            break;
        case 'TEST':
            \DB::table('server_mode')->where('id', 1)->update([
                'mode' => false,
                'verified_by' => 'Server'
            ]);
            $this->info('Server is now in TEST mode');
            break;
        default:
            $this->error('Please enter either LIVE or TEST');
            break;
    }
}

Проблема в том, что я хочу добавить, какой разработчик изменил статус. Пока что он жестко запрограммирован на «Сервер». Можно ли получить информацию об IP-адресе или компьютере, который выполнил команду для сохранения в БД?

1 Ответ

0 голосов
/ 15 января 2019

Как сказано в комментариях, Jaquarh не пытается аутентифицироваться. Он просто хочет получить имя пользователя, который выполнил команду.

Вы можете использовать $processUser = exec('whoami'); для получения текущего имени пользователя. (Это не будет работать на окнах)

Однако будьте осторожны, имена пользователей не всегда очень информативны. Мой ноутбук на работе был предустановлен с именем пользователя «Пользователь».

Еще одна идея, которую я могу предложить, - это использовать параметр «name» при использовании вашей команды.

...