From a004960a6bc3321a3e88a8948a4eaab795bf1dc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Jaussoin?= Date: Wed, 20 May 2020 12:13:38 +0200 Subject: [PATCH] Add devices management panel --- .../Controllers/Account/DeviceController.php | 39 +++++++++++++++++++ .../views/account/devices/delete.blade.php | 29 ++++++++++++++ .../views/account/devices/index.blade.php | 35 +++++++++++++++++ .../resources/views/account/index.blade.php | 6 +++ flexiapi/routes/web.php | 4 ++ 5 files changed, 113 insertions(+) create mode 100644 flexiapi/app/Http/Controllers/Account/DeviceController.php create mode 100644 flexiapi/resources/views/account/devices/delete.blade.php create mode 100644 flexiapi/resources/views/account/devices/index.blade.php diff --git a/flexiapi/app/Http/Controllers/Account/DeviceController.php b/flexiapi/app/Http/Controllers/Account/DeviceController.php new file mode 100644 index 0000000..5b7ec1e --- /dev/null +++ b/flexiapi/app/Http/Controllers/Account/DeviceController.php @@ -0,0 +1,39 @@ + $connector->getDevices($request->user()->identifier) + ->keyBy('uuid') + ]); + } + + public function delete(Request $request, string $uuid) + { + $connector = new FlexisipConnector; + + return view('account.devices.delete', + ['device' => $connector->getDevices($request->user()->identifier) + ->keyBy('uuid') + ->where('uuid', $uuid) + ]); + } + + public function destroy(string $uuid) + { + $connector = new FlexisipConnector; + $connector->deleteDevice($request->user()->identifier, $uuid); + + return redirect()->route('account.device.index'); + } +} diff --git a/flexiapi/resources/views/account/devices/delete.blade.php b/flexiapi/resources/views/account/devices/delete.blade.php new file mode 100644 index 0000000..c7eb8f6 --- /dev/null +++ b/flexiapi/resources/views/account/devices/delete.blade.php @@ -0,0 +1,29 @@ +@extends('layouts.account') + +@section('breadcrumb') + + +@endsection + +@section('content') + +

Device deletion

+ +

Are you sure you want to delete the following device?

+

+ User Agent: {{ $device->user_agent }}
+ Expires At: {{ $device->expires_at }}

+

+ + +{!! Form::open(['route' => 'account.device.destroy', 'method' => 'delete']) !!} + +{!! Form::hidden('uuid', $device->uuid) !!} + +{!! Form::submit('Delete', ['class' => 'btn btn-danger float-right']) !!} +{!! Form::close() !!} + + +@endsection \ No newline at end of file diff --git a/flexiapi/resources/views/account/devices/index.blade.php b/flexiapi/resources/views/account/devices/index.blade.php new file mode 100644 index 0000000..7a14273 --- /dev/null +++ b/flexiapi/resources/views/account/devices/index.blade.php @@ -0,0 +1,35 @@ +@extends('layouts.account') + +@section('breadcrumb') + +@endsection + +@section('content') + + + + + + + + + + + @foreach ($devices as $device) + + + + + + @endforeach + +
User AgentExpires At
{{ $device->user_agent }}{{ $account->expires_at }} + + Delete + +
+ + +@endsection \ No newline at end of file diff --git a/flexiapi/resources/views/account/index.blade.php b/flexiapi/resources/views/account/index.blade.php index 83ba531..d4b477b 100644 --- a/flexiapi/resources/views/account/index.blade.php +++ b/flexiapi/resources/views/account/index.blade.php @@ -13,6 +13,12 @@

No email yet

@endif + +
+
Manage my devices
+
+

See and delete the devices linked to your account

+
Change my password
diff --git a/flexiapi/routes/web.php b/flexiapi/routes/web.php index a805e8c..9ea78ed 100644 --- a/flexiapi/routes/web.php +++ b/flexiapi/routes/web.php @@ -45,6 +45,10 @@ Route::group(['middleware' => 'auth'], function () { Route::post('email', 'AccountEmailController@update')->name('account.email.update'); Route::get('password', 'AccountPasswordController@show')->name('account.password'); Route::post('password', 'AccountPasswordController@update')->name('account.password.update'); + + Route::get('devices', 'Account\DeviceController@index')->name('account.device.index'); + Route::get('devices/delete/{id}', 'Account\DeviceController@delete')->name('account.device.delete'); + Route::delete('devices/{id}', 'Account\DeviceController@destroy')->name('account.device.destroy'); }); Route::group(['middleware' => 'auth.admin'], function () {