parent
							
								
									a71fed254a
								
							
						
					
					
						commit
						72011feea9
					
				| @ -0,0 +1,77 @@ | ||||
| <?php | ||||
| 
 | ||||
| 
 | ||||
| namespace App\Http\Controllers; | ||||
| 
 | ||||
| 
 | ||||
| use App\Models\EmailConfirmation; | ||||
| use Hash; | ||||
| use Illuminate\Http\Request; | ||||
| use Illuminate\Validation\Rule; | ||||
| use MightyPork\Utils\Str; | ||||
| 
 | ||||
| class AccountController extends Controller | ||||
| { | ||||
| 
 | ||||
|     public function editAccount() | ||||
|     { | ||||
|         return view('profile.edit-account', ['user' => user()]); | ||||
|     } | ||||
|     public function storeAccount(Request $request) | ||||
|     { | ||||
|         $input = $this->validate($request, [ | ||||
|             'name' => [ | ||||
|                 'required', | ||||
|                 VALI_NAME, | ||||
|                 Rule::unique('users')->ignoreModel(\user()), | ||||
|             ], | ||||
|             'email' => [ | ||||
|                 'required', | ||||
|                 VALI_EMAIL, | ||||
|                 Rule::unique('users')->ignoreModel(\user()), | ||||
|             ], | ||||
|             'new_password' => ['nullable', 'confirmed', VALI_PASSWORD], | ||||
|         ]); | ||||
| 
 | ||||
|         $user = user(); | ||||
| 
 | ||||
|         if ($input->email != $user->email) { | ||||
|             $confirmation = EmailConfirmation::create([ | ||||
|                 'user_id' => $user->id, | ||||
|                 'email' => $input->email, | ||||
|                 'token' => Str::random(60), | ||||
|             ]); | ||||
| 
 | ||||
|             flash()->warning("New e-mail confirmation sent to $input->email.")->important(); | ||||
| 
 | ||||
|             // TODO send the e-mail | ||||
| 
 | ||||
|             unset($input->email); | ||||
|         } | ||||
| 
 | ||||
|         $user->fill($input->all()); | ||||
| 
 | ||||
|         if ($input->has('new_password')) { | ||||
|             $user->password = Hash::make($input->new_password); | ||||
| 
 | ||||
|             flash()->warning('Password changed'); | ||||
|         } | ||||
| 
 | ||||
|         $user->save(); | ||||
| 
 | ||||
|         flash()->success('Settings saved'); | ||||
| 
 | ||||
|         return back(); | ||||
|     } | ||||
| 
 | ||||
|     public function forgetSocialLogin($id) | ||||
|     { | ||||
|         $identity = user()->socialIdentities()->where('id', $id)->first(); | ||||
|         if (null === $identity) { | ||||
|             abort(404, "No such identity"); | ||||
|         } | ||||
| 
 | ||||
|         $identity->delete(); | ||||
|         return redirect(route('profile.manage-oauth')); | ||||
|     } | ||||
| } | ||||
					Loading…
					
					
				
		Reference in new issue