Cartalyst Sentinel と ACL のこの概念は初めてです。ユーザーを作成し、アクティベーションとログインとログアウトを実行できました。
学びを次のレベルに引き上げたいと思います。このlaravelアプリには2種類のユーザーが欲しいです。1 つは管理者で、もう 1 つはサブスクライバーです。私のアカウント作成方法は、デフォルトでユーザーをサブスクライバーに作成する必要があると想定しています。
public function postCreate() {
/* Validation */
$validation = Validator::make(Input::all(), [
'email' => 'required|email|max:50|unique:users',
'username' => 'required|min:3|max:20|unique:users',
'password' => 'required|min:6',
'password_repeat' => 'required|same:password',
]);
if ($validation->fails()) {
return Redirect('login')->withErrors($validation)->withInput();
} else {
$credentials = Input::all();
$user = Sentinel::register($credentials);
$activation = Activation::create($user);
$activation_code = $activation->code;
if ($user) {
Mail::send('emails.auth.activate', ['link' => URL::route('account-activate', [$user->id, $activation_code]), 'username' => $user->username], function($message) use ($user) {
$message->to($user->email, $user->username)->subject('Activate your account');
});
return Redirect::route('home')->with('global', 'Thank you for registering! We have sent you an email to activate your account');
}
}
}
そのようにコードを変更しますか
$user = Sentinel::register($credentials);
$user = Sentinel::findById(1);
$role = Sentinel::findRoleByName('Subscribers');
$role->users()->attach($user);
問題は、そもそもロールを作成していないことです。その機能をどこに書きますか?現在、私は次のコントローラーを持っています
- AccountController - アクティベーションを処理します
- AuthController - ログイン/ログアウトを処理します
- RegistrationController - ユーザーの登録を処理します
- RolesController - ここにはまだ何も書いていません。私は少し迷っています。
私を案内してください。どんな助けでも大歓迎です。