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