diff --git a/app/Http/Controllers/Frontend/ProfileController.php b/app/Http/Controllers/Frontend/ProfileController.php index 8a1ada61..e619b25f 100644 --- a/app/Http/Controllers/Frontend/ProfileController.php +++ b/app/Http/Controllers/Frontend/ProfileController.php @@ -11,6 +11,7 @@ use Illuminate\Support\Facades\Auth; use Jackiedo\Timezonelist\Facades\Timezonelist; use App\Models\User; +use App\Facades\Utils; use App\Repositories\AirlineRepository; use App\Repositories\AirportRepository; use App\Repositories\UserRepository; @@ -108,9 +109,24 @@ class ProfileController extends AppBaseController $req_data['password'] = Hash::make($req_data['password']); } - $user = $this->userRepo->update($req_data, $id); + $this->userRepo->update($req_data, $id); Flash::success('Profile updated successfully!'); return redirect(route('frontend.profile.index')); } + + /** + * Regenerate the user's API key + */ + public function regen_apikey(Request $request) + { + $user = User::find(Auth::user()->id); + Log::info('Regenerating API key "'.$user->pilot_id.'"'); + + $user->api_key = Utils::generateApiKey(); + $user->save(); + + flash('New API key generated!')->success(); + return redirect(route('frontend.profile.index')); + } } diff --git a/app/Models/User.php b/app/Models/User.php index b0b920a4..7cefd931 100755 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -62,21 +62,36 @@ class User extends Authenticatable ]; public static $rules = [ - + 'name' => 'required', + 'email' => 'required|email|unique:users,email', ]; - public function getPilotIdAttribute($value) + /** + * @return string + */ + public function getPilotIdAttribute() { $length = setting('pilots.id_length'); return $this->airline->icao . str_pad($this->id, $length, '0', STR_PAD_LEFT); } - public function getGravatarAttribute($value) + /** + * @return string + */ + public function getIdentAttribute() + { + return $this->getPilotIdAttribute(); + } + + /** + * @return string + */ + public function getGravatarAttribute() { $size = 80; $default = 'https://en.gravatar.com/userimage/12856995/7c7c1da6387853fea65ff74983055386.png'; - return "https://www.gravatar.com/avatar/" . - md5( strtolower( trim( $this->email) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size; + return 'https://www.gravatar.com/avatar/' . + md5(strtolower(trim($this->email))) . '?d=' . urlencode($default ) . '&s=' . $size; } /** diff --git a/app/Routes/web.php b/app/Routes/web.php index 54a18424..22159fcc 100755 --- a/app/Routes/web.php +++ b/app/Routes/web.php @@ -27,8 +27,11 @@ Route::group([ Route::post('flights/save', 'FlightController@save')->name('flights.save'); Route::resource('flights', 'FlightController'); - Route::resource('profile', 'ProfileController'); Route::resource('pireps', 'PirepController'); + + Route::get('profile/regen_apikey', 'ProfileController@regen_apikey') + ->name('profile.regen_apikey'); + Route::resource('profile', 'ProfileController'); }); Auth::routes(); diff --git a/resources/views/layouts/default/app.blade.php b/resources/views/layouts/default/app.blade.php index 66e5038c..989734bf 100644 --- a/resources/views/layouts/default/app.blade.php +++ b/resources/views/layouts/default/app.blade.php @@ -49,7 +49,6 @@
+{{-- + show the details/edit fields only for the currently logged in user +--}} @if(Auth::check() && $user->id === Auth::user()->id)| {!! $user->email !!} | ||
| API Key don't share this! |
+ API Key don't share this! | {!! $user->api_key !!} |