2017-05-23 1 views
0

Laravelの正規登録方法を無効にしたいのは、管理者だけが登録/管理/編集ができるためです。
しかし、私はそれを行う方法を知っていないし、どこから始める。Laravel 5.4のデフォルトのレジスタを削除して管理者に手作業で行う方法

おかげで

編集:
I'amちょうどデフォルトのレジスタを無効にする方法を求めて、だけでなく、コントロールパネルの管理手動レジストのユーザーを作成する方法はありません。

+0

[Larav el 5.4 Disable Register Route](https://stackoverflow.com/questions/42695917/laravel-5-4-disable-register-route) – dparoli

+0

@dparoliいいえ、手動で登録する方法を尋ねています。デフォルトの登録ルートを無効にするだけではなく。 – vl14b

答えて

0

現在、あなたが望むものを管理するための唯一の方法は、ルート/ web.phpから

Auth::routes(); 

を削除し、それぞれの経路を一つずつ追加することです。

あなたはここに追加されますAuth::routes()すべてのルートがあります。auth方法で

vendor/laravel/framework/src/Illuminate/Routing/Router.php 

を。

route/web.phpにすべて貼り付けて、不要なものを削除してください(GET/POSTリクエストon/register)。

ユーザーを管理パネルに登録する方法としては、いくつかの方法があります。ここには1つがあります:

私はis_adminと呼ぶユーザモデルのブールを持っています。

isAdminMiddlewareミドルウェアを作成して、ユーザーがis_adminプロパティを持っているかどうかを確認します。彼がそれを持っていれば、さらに進むことができます、そうでなければ前のページに戻るか、または403を返します。

たとえば、UsersControllerでは、新しいユーザーを作成するためのフォームを含むビューを返すGETメソッドを作成します。

同じコントローラで、新しいユーザーをデータベースに追加して適切な検証を行うPOSTメソッドを作成します。

両方の経路をisAdminMiddlewareで保護して、ユーザーがそのページにアクセスできないようにすることを忘れないでください。

は、単にRegistersUsersトレイトからメソッドをオーバーライド:

+0

ありがとう、あなたの説明はとても良いです、私はそれのほとんどを理解することができます。しかし、もう1つの質問があります。「だから、私は新しいコントローラを作成し、登録ユーザーのために必要なのですか?」ありがとう。 – vl14b

+0

それはあなたのコントローラを構造化する方法に依存しますが、それは方法であり、うまくいきますが、(私を含む)一部の人は、シングルアクションコントローラを好みます(基本的に、私はそれがもっと個人的な選択だと思う –

0

php artisan make:authを実行してLaravelの認証機能をスキャフォールドすると、多くのことが起こります。 routes/web.php

、あなたはこのような/login/registerアクセスできないなどのルートを行います

Auth::routes(); 

この行を削除する必要があります。

また、あなたは最後に、あなたは再使用するユーザーの特性を登録するには、あなたの安全な管理パネルから独自のコードを記述する必要がありますresources/views/auth

に必要はありませんビューをクリーンアップすることができますLaravelは既に提供しています。

+0

だから、私も手動でログインを書き直す必要がありますか? – vl14b

+1

実際はそうではありません。 'app/Http/Controllers/Auth/RegisterController.php'からインスピレーションを得ることができます。 – Mozammil

+0

これでauth :: routes()を削除するだけです。 ログインするための新しいルートを作成する必要がありますか? 次に、新しいコントローラを登録する必要がありますか? 申し訳ありませんが、私にeli5かステップバイステップの説明がありますか?私はそれをまったく手に入れません。 – vl14b

0

あなたが本当に認証::ルート()足場を保つが、管理者の「コントロールパネル」の外部からの登録を無効にしたい場合は、これはそれを行うための最も簡単な方法です。あなたのアプリ/ Http/Controllers/Auth/RegisterController.phpクラスにあります。同様に、

public function __construct() { 
    $this->middleware('auth'); 
} 

またはいくつかのカスタムミドルウェアへの

public function __construct() { 
    $this->middleware('guest'); 
} 

public function showRegistrationForm() { 
    abort(403, 'Unauthorized action.'); 
} 

public function register() { 
    abort(403, 'Unauthorized action.'); 
} 

第二に、単純なオプションは、あなたのRegisterController.phpのミドルウェア__construct()メソッドを変更することです

public function __construct() { 
    $this->middleware('admin'); 
} 
関連する問題