2016-07-05 9 views
1

管理者がユーザーを追加できるシステムを構築しています。それは私のAuthコントローラーがこのように見えていて、うまくいきますが、ユーザーが作成した後に標準登録を使ってログインしているということです。明らかに管理者がユーザー(別の管理者または一般ユーザー)を追加した場合、管理者はログインしたままで、作成したばかりのユーザーにはログインしないことを望みます。どのように私はライブラリのいずれかを編集する必要はありませんような方法でこれを行うことができますか?これらの変更を上書きするLaravelを更新した場合laravel 5.2登録後にユーザーにログインしないでください

AuthController.php

<?php 

namespace App\Http\Controllers\Auth; 

use App\User; 
use App\Role; 
use Mail; 
use Validator; 
use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\ThrottlesLogins; 
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; 
use Illuminate\Http\Request; 
use Intervention\Image\Facades\Image as Image; 


class AuthController extends Controller 
{ 
    /* 
    |-------------------------------------------------------------------------- 
    | Registration & Login Controller 
    |-------------------------------------------------------------------------- 
    | 
    | This controller handles the registration of new users, as well as the 
    | authentication of existing users. By default, this controller uses 
    | a simple trait to add these behaviors. Why don't you explore it? 
    | 
    */ 

    use AuthenticatesAndRegistersUsers, ThrottlesLogins; 

    /** 
    * Where to redirect users after login/registration. 
    * 
    * @var string 
    */ 
    protected $redirectTo = '/add'; 

    /** 
    * Create a new authentication controller instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     $this->middleware($this->guestMiddleware(), ['except' => 'logout']); 
    } 

    /** 
    * Get a validator for an incoming registration request. 
    * 
    * @param array $data 
    * @return \Illuminate\Contracts\Validation\Validator 
    */ 
    protected function validator(array $data) 
    { 
     return Validator::make($data, [ 
      'first-name' => 'required|max:255', 
      'last-name' => 'required|max:255', 
      'phone' => 'required|max:255', 
      'form' => 'max:255', 
      'email' => 'required|email|max:255|unique:users', 
      'password' => 'required|min:6|confirmed', 
     ]); 
    } 

    /** 
    * Create a new user instance after a valid registration. 
    * 
    * @param array $data 
    * @return User 
    */ 
    protected function create(array $data) 
    { 
     //Create the user 
     $user = User::create([ 
      'first_name' => $data['first-name'], 
      'last_name' => $data['last-name'], 
      'phone' => $data['phone'], 
      'email' => $data['email'], 
      'password' => bcrypt($data['password']), 
     ]); 

     //Is it a User? Then give them that role 
     if ($data['user-role'] == 'user') 
     { 
      $role = Role::where('name', '=', 'user')->firstOrFail(); 
      $user = User::find($user->id); 
      $user->roles()->attach($role->id); 
     } 

     //Is it an Admin? Then give them that role 
     if ($data['user-role'] == 'admin') 
     { 
      $role = Role::where('name', '=', 'owner')->firstOrFail(); 
      $user = User::find($user->id); 
      $user->roles()->attach($role->id); 
     } 

     Mail::send('auth.emails.registered', ['user' => $user], function ($m) use ($user) 
     { 
      $m->to($user->email, $user->first_name)->subject('You Have Been Added'); 
     }); 

     return $user; 
    } 

} 
+0

return $ userをリダイレクト( '/')を返すように変更してください。 –

答えて

1

登録に使用RegisterUsers形質は、自動的にregister()方法でユーザーを記録しますが、あなたは安全にこのようなAuthControllerでそれを上書きすることができます。

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

    if ($validator->fails()) { 
     $this->throwValidationException(
      $request, $validator 
     ); 
    } 

    $this->create($request->all()); 

    return redirect($this->redirectPath()); 
} 
関連する問題