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