2016-07-05 3 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

попробуйте изменить возвращаемый $ пользователь для возврата перенаправления ('/'); –

ответ

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()); 
} 
Смежные вопросы