Акция Laravel после регистрации пользователя - PullRequest
0 голосов
/ 08 ноября 2018

В моем приложении Laravel после новой регистрации оно автоматически подключается к этой новой учетной записи.

Мне просто нужно зарегистрироваться и оставаться на связи с настоящей учетной записью авторизации. Как мы можем изменить эту настройку по умолчанию?

Потому что я создаю новые учетные записи в приложении с правами администратора. Спасибо

Это мой регистр. Код контроллера:

 use RegistersUsers;
protected function redirectTo()
{
if(Auth::user()->is_admin == 1){
  return 'persons';
}
return '/persons';
}
public function __construct()
{
    $this->middleware('auth');
}
protected function validator(array $data)
{

    return Validator::make($data, [
        'name' => 'required|string|max:255',
        'email' => 'required|string|email|max:255|unique:users',
        'password' => 'required|string|min:6|confirmed',

    ]);
}
protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
    ]);
}

В Registeruser.php я изменил регистр функций на

public function register(Request $request)
{
    $this->validator($request->all())->validate();

    event(new Registered($user = $this->create($request->all())));


    return $this->registered($request, $user)
                    ?: redirect($this->redirectPath());
}

Обратите внимание, что я создаю новых пользователей, используя person.blade.php, а не /register

1 Ответ

0 голосов
/ 08 ноября 2018

В вашем App/Http/Controllers/Auth/RegisterController вам необходимо переопределить метод register из RegistersUsers черта:

public function register(Request $request)
{
    $this->validator($request->all())->validate();

    event(new Registered($user = $this->create($request->all())));

    $this->guard()->login($user);

    return $this->registered($request, $user)
                    ?: redirect($this->redirectPath());
}

Эта строка: $this->guard()->login($user); - это место, где пользователь вошел в систему. Вы можете удалить его или изменить в соответствии с вашими потребностями.

Теперь, если вы хотите перенаправить после регистрации в определенное место, в зависимости от типа пользователя, вам нужно заменить protected $redirectTo на:

protected function redirectTo()
{
    //You would need to modify this according to your needs, this is just an example.
    if(Auth::user()->hasRole('admin')){
      return 'path';
    }

    if(Auth::user()->hasRole('regular_user')){
      return 'path';
    }

    return 'default_path';
}

Поверх вашего файла добавьте:

use Illuminate\Http\Request; use Illuminate\Auth\Events\Registered;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...