|
@@ -3,7 +3,7 @@
|
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
use Illuminate\Http\Request;
|
|
|
-use App\{AccountLog, Media, Profile, User};
|
|
|
+use App\{AccountLog, EmailVerification, Media, Profile, User};
|
|
|
use Auth, DB;
|
|
|
use App\Util\Lexer\PrettyNumber;
|
|
|
|
|
@@ -31,24 +31,45 @@ class SettingsController extends Controller
|
|
|
{
|
|
|
$this->validate($request, [
|
|
|
'name' => 'required|string|max:30',
|
|
|
- 'bio' => 'nullable|string|max:125'
|
|
|
+ 'bio' => 'nullable|string|max:125',
|
|
|
+ 'website' => 'nullable|url',
|
|
|
+ 'email' => 'nullable|email'
|
|
|
]);
|
|
|
|
|
|
$changes = false;
|
|
|
$name = $request->input('name');
|
|
|
$bio = $request->input('bio');
|
|
|
+ $website = $request->input('website');
|
|
|
+ $email = $request->input('email');
|
|
|
$user = Auth::user();
|
|
|
$profile = $user->profile;
|
|
|
|
|
|
- if($profile->name != $name) {
|
|
|
+
|
|
|
+ if($user->email != $email) {
|
|
|
$changes = true;
|
|
|
- $user->name = $name;
|
|
|
- $profile->name = $name;
|
|
|
+ $user->email = $email;
|
|
|
+ $user->email_verified_at = null;
|
|
|
+ // Prevent old verifications from working
|
|
|
+ EmailVerification::whereUserId($user->id)->delete();
|
|
|
}
|
|
|
|
|
|
- if($profile->bio != $bio) {
|
|
|
- $changes = true;
|
|
|
- $profile->bio = $bio;
|
|
|
+ // Only allow email to be updated if not yet verified
|
|
|
+ if(!$changes && $user->email_verified_at) {
|
|
|
+ if($profile->name != $name) {
|
|
|
+ $changes = true;
|
|
|
+ $user->name = $name;
|
|
|
+ $profile->name = $name;
|
|
|
+ }
|
|
|
+
|
|
|
+ if($profile->website != $website) {
|
|
|
+ $changes = true;
|
|
|
+ $profile->website = $website;
|
|
|
+ }
|
|
|
+
|
|
|
+ if($profile->bio != $bio) {
|
|
|
+ $changes = true;
|
|
|
+ $profile->bio = $bio;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if($changes === true) {
|