2016-05-18 5 views
0

laravel 5.2に組み込まれているデフォルトのauthを使用したいのですが、私のアプリケーションでは、ユーザーが管理者用ダッシュボードの許可ユーザーであるため、ユーザー自身を登録させる必要はありません。現在既存のユーザーだけがユーザーを作成できるはずです。Laravelのユーザーモデルの編集フォームを作成するにはどうすればよいですか?

そのように、私はいくつかのことを達成できるようにする必要があります。publicユーザー

  • は、認証済みユーザーが新しいユーザーを登録できるようにする必要があるため

    • は、登録を無効にする必要があり、アクセス登録フォーム
    • 認証されたユーザーがユーザーを編集したり、パスワードのリセットや名前の変更などを許可するフォームを提供する必要があります。

    ここでは、 eビュー?私は新しいuserscontrollerを完全にビルドするか、createとeditメソッドをauthcontrollerに直接書き込むべきですか?全体として、Laravelの認証に基づいてそのようなシステムを構築するためのベストプラクティスは何ですか。

  • 答えて

    1
    あなたがルートを登録するためのビュー内のすべてのリンクを削除することができ、あなたが AuthController方法 showRegistrationForm()register()を編集することができ、パブリックユーザーのための無効登録については

    、最初のロードビューとあなたは、「ログイン」ルートに2つ目をリダイレクトすることができますユーザーを保存するPOSTです。

    ユーザーテーブルの新しい方法については、UserControllerを作成し、Laravelの認証コントローラからロジックを削除する方が良いと思います。ここでユーザーはすべてのリソースとして表示されますが、認証されたユーザーその特権を持つ別のユーザーを追加しようとしています。

    新しいユーザーを追加する権限はシステムによって異なりますが、新しいユーザーを追加するには管理者ユーザーのみが必要な場合はすべての役割とアクセス許可を設定する必要はありません。ユーザーのテーブルの別の列から行いますが、より多くのアクセス許可が制御された領域またはアクションを持つ場合は、ACLがより優れていると考えてください。

    1

    関数呼び出しによってファイル自体に引き込まれているルートを取り込む必要があるように思えます。

    これを行うと、登録するための経路を無効にすることができます。だから、あなたのroutes.phpにRouter::auth()を入れて、あなた自身の中に入れて、必要のないものを外してください:https://github.com/laravel/framework/blob/ea9fd03f5c5aef12018812e22e82979d914fef93/src/Illuminate/Routing/Router.php#L367

    あなた自身をコードする必要がある残りの部分。良い出発点は、登録のためにビューを取得し、ログインしたユーザーのためのフォームにそれを置くことです。ユーザーが*新規ユーザーを作成すると、あなたはあなたの検証を実行します(必要なメールは=>、パスワードは=>など、必須)あなたは

    // this would be in something like public function createUser(Request $request) 
    $rules = [ 
        'email' => 'required|unique:users,email', 
        'password' => 'required|confirmed' 
    ]; 
    
    // validate the request, if it doesn't pass it will redirect back with input and errors 
    $this->validate($request, $rules); 
    
    // create the user now 
    User::create(['email' => $request->input('email'), 'password' => \Hash::make($request->input('password')]); 
    

    のようなものを持っているでしょうし、残りはコードにあなた次第です。

    関連する問題