From 13a1eb4dc55d36a1a0298fa1e0b2bf9fcf134328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Jaussoin?= Date: Mon, 5 Jul 2021 17:12:40 +0200 Subject: [PATCH] Add account deletetion feature in the Admin panel Add the provisioning elements to the user admin page Add missing file headers, cleanup code Bump the dependencies --- flexiapi/README.md | 4 +- flexiapi/app/ActivationExpiration.php | 17 ++ .../Controllers/Account/AccountController.php | 1 - .../Account/ProvisioningController.php | 17 ++ .../Controllers/Admin/AccountController.php | 17 ++ .../Http/Controllers/Api/EmailController.php | 17 ++ .../Controllers/Api/PasswordController.php | 17 ++ .../Http/Controllers/Api/TokenController.php | 17 ++ flexiapi/app/Mail/ChangedEmail.php | 3 - flexiapi/app/Mail/ChangingEmail.php | 1 - flexiapi/app/Mail/ConfirmedRegistration.php | 1 - flexiapi/app/Mail/NewsletterRegistration.php | 1 - flexiapi/app/Mail/PasswordAuthentication.php | 1 - flexiapi/app/Mail/RegisterConfirmation.php | 1 - flexiapi/app/PhoneChangeCode.php | 17 ++ flexiapi/app/Token.php | 17 ++ flexiapi/app/User.php | 1 - flexiapi/composer.json | 1 + flexiapi/composer.lock | 223 +++++++++++++++++- flexiapi/composer.phar | Bin 2252532 -> 2253070 bytes ...2020_11_30_123051_create_aliases_table.php | 17 ++ ...10_160119_add_phone_change_codes_table.php | 17 ++ .../2021_02_23_152536_create_tokens_table.php | 17 ++ ...53_create_activation_expirations_table.php | 17 ++ .../views/admin/account/delete.blade.php | 24 ++ .../views/admin/account/index.blade.php | 20 +- .../views/admin/account/show.blade.php | 17 +- flexiapi/routes/web.php | 3 + flexisip-account-manager.spec | 2 +- 29 files changed, 482 insertions(+), 26 deletions(-) create mode 100644 flexiapi/resources/views/admin/account/delete.blade.php diff --git a/flexiapi/README.md b/flexiapi/README.md index 23d050c..4864ba9 100644 --- a/flexiapi/README.md +++ b/flexiapi/README.md @@ -113,7 +113,9 @@ FlexiAPI needs an empty database to run its migration. The following console com php artisan db:import {old_dbname} {old_sqlite_file_path?} --username={old_username} --password={old_password} -You can also specify the `port`, `host` and `database type` as a parameter, as well as the table name for the accounts (default `accounts`), passwords (default `passwords`) and aliases (default `aliases`). +Several other parameters are also available to customize the migration process, you can list them all using the command documentation. + + php artisan -h db:import ### Clear Expired Nonces for DIGEST authentication diff --git a/flexiapi/app/ActivationExpiration.php b/flexiapi/app/ActivationExpiration.php index 651ef2e..4ec9a27 100644 --- a/flexiapi/app/ActivationExpiration.php +++ b/flexiapi/app/ActivationExpiration.php @@ -1,4 +1,21 @@ . +*/ namespace App; diff --git a/flexiapi/app/Http/Controllers/Account/AccountController.php b/flexiapi/app/Http/Controllers/Account/AccountController.php index a6507c6..7e98e51 100644 --- a/flexiapi/app/Http/Controllers/Account/AccountController.php +++ b/flexiapi/app/Http/Controllers/Account/AccountController.php @@ -22,7 +22,6 @@ namespace App\Http\Controllers\Account; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; -use Illuminate\Support\Str; use App\Account; diff --git a/flexiapi/app/Http/Controllers/Account/ProvisioningController.php b/flexiapi/app/Http/Controllers/Account/ProvisioningController.php index fce1811..e5d8795 100644 --- a/flexiapi/app/Http/Controllers/Account/ProvisioningController.php +++ b/flexiapi/app/Http/Controllers/Account/ProvisioningController.php @@ -1,4 +1,21 @@ . +*/ namespace App\Http\Controllers\Account; diff --git a/flexiapi/app/Http/Controllers/Admin/AccountController.php b/flexiapi/app/Http/Controllers/Admin/AccountController.php index ee8fac3..82a5c6e 100644 --- a/flexiapi/app/Http/Controllers/Admin/AccountController.php +++ b/flexiapi/app/Http/Controllers/Admin/AccountController.php @@ -94,6 +94,23 @@ class AccountController extends Controller return redirect()->back(); } + public function delete(Request $request, $id) + { + return view('admin.account.delete', [ + 'account' => Account::findOrFail($id) + ]); + } + + public function destroy(Request $request) + { + $account = Account::findOrFail($request->get('account_id')); + $account->delete(); + + $request->session()->flash('success', 'Account successfully destroyed'); + + return redirect()->route('admin.account.index'); + } + public function generateApiKey(Request $request) { $account = $request->user(); diff --git a/flexiapi/app/Http/Controllers/Api/EmailController.php b/flexiapi/app/Http/Controllers/Api/EmailController.php index ddf1620..d48cfbe 100644 --- a/flexiapi/app/Http/Controllers/Api/EmailController.php +++ b/flexiapi/app/Http/Controllers/Api/EmailController.php @@ -1,4 +1,21 @@ . +*/ namespace App\Http\Controllers\Api; diff --git a/flexiapi/app/Http/Controllers/Api/PasswordController.php b/flexiapi/app/Http/Controllers/Api/PasswordController.php index b39165e..6d9a39d 100644 --- a/flexiapi/app/Http/Controllers/Api/PasswordController.php +++ b/flexiapi/app/Http/Controllers/Api/PasswordController.php @@ -1,4 +1,21 @@ . +*/ namespace App\Http\Controllers\Api; diff --git a/flexiapi/app/Http/Controllers/Api/TokenController.php b/flexiapi/app/Http/Controllers/Api/TokenController.php index f46795b..6139e5e 100644 --- a/flexiapi/app/Http/Controllers/Api/TokenController.php +++ b/flexiapi/app/Http/Controllers/Api/TokenController.php @@ -1,4 +1,21 @@ . +*/ namespace App\Http\Controllers\Api; diff --git a/flexiapi/app/Mail/ChangedEmail.php b/flexiapi/app/Mail/ChangedEmail.php index e59dea0..7588efa 100644 --- a/flexiapi/app/Mail/ChangedEmail.php +++ b/flexiapi/app/Mail/ChangedEmail.php @@ -20,12 +20,9 @@ namespace App\Mail; use Illuminate\Bus\Queueable; -use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; -use App\Account; - class ChangedEmail extends Mailable { use Queueable, SerializesModels; diff --git a/flexiapi/app/Mail/ChangingEmail.php b/flexiapi/app/Mail/ChangingEmail.php index 146610c..50d1f70 100644 --- a/flexiapi/app/Mail/ChangingEmail.php +++ b/flexiapi/app/Mail/ChangingEmail.php @@ -20,7 +20,6 @@ namespace App\Mail; use Illuminate\Bus\Queueable; -use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; diff --git a/flexiapi/app/Mail/ConfirmedRegistration.php b/flexiapi/app/Mail/ConfirmedRegistration.php index 29abf20..d62ef82 100644 --- a/flexiapi/app/Mail/ConfirmedRegistration.php +++ b/flexiapi/app/Mail/ConfirmedRegistration.php @@ -20,7 +20,6 @@ namespace App\Mail; use Illuminate\Bus\Queueable; -use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; diff --git a/flexiapi/app/Mail/NewsletterRegistration.php b/flexiapi/app/Mail/NewsletterRegistration.php index 6bb4fac..813c964 100644 --- a/flexiapi/app/Mail/NewsletterRegistration.php +++ b/flexiapi/app/Mail/NewsletterRegistration.php @@ -20,7 +20,6 @@ namespace App\Mail; use Illuminate\Bus\Queueable; -use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; diff --git a/flexiapi/app/Mail/PasswordAuthentication.php b/flexiapi/app/Mail/PasswordAuthentication.php index 2c8431f..17c9005 100644 --- a/flexiapi/app/Mail/PasswordAuthentication.php +++ b/flexiapi/app/Mail/PasswordAuthentication.php @@ -20,7 +20,6 @@ namespace App\Mail; use Illuminate\Bus\Queueable; -use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; diff --git a/flexiapi/app/Mail/RegisterConfirmation.php b/flexiapi/app/Mail/RegisterConfirmation.php index 80d9410..6ee5ffa 100644 --- a/flexiapi/app/Mail/RegisterConfirmation.php +++ b/flexiapi/app/Mail/RegisterConfirmation.php @@ -20,7 +20,6 @@ namespace App\Mail; use Illuminate\Bus\Queueable; -use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; diff --git a/flexiapi/app/PhoneChangeCode.php b/flexiapi/app/PhoneChangeCode.php index 803f449..0040372 100644 --- a/flexiapi/app/PhoneChangeCode.php +++ b/flexiapi/app/PhoneChangeCode.php @@ -1,4 +1,21 @@ . +*/ namespace App; diff --git a/flexiapi/app/Token.php b/flexiapi/app/Token.php index b37fecc..e4b0166 100644 --- a/flexiapi/app/Token.php +++ b/flexiapi/app/Token.php @@ -1,4 +1,21 @@ . +*/ namespace App; diff --git a/flexiapi/app/User.php b/flexiapi/app/User.php index a46fe4c..a54807d 100644 --- a/flexiapi/app/User.php +++ b/flexiapi/app/User.php @@ -20,7 +20,6 @@ namespace App; use Illuminate\Database\Eloquent\Factories\HasFactory; -use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; diff --git a/flexiapi/composer.json b/flexiapi/composer.json index 2383b0f..dbb6221 100644 --- a/flexiapi/composer.json +++ b/flexiapi/composer.json @@ -19,6 +19,7 @@ "parsedown/laravel": "^1.2" }, "require-dev": { + "barryvdh/laravel-debugbar": "^3.6", "facade/ignition": "^2.3", "fzaninotto/faker": "^1.9", "mockery/mockery": "^1.4", diff --git a/flexiapi/composer.lock b/flexiapi/composer.lock index 57fc0a7..78f2839 100644 --- a/flexiapi/composer.lock +++ b/flexiapi/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ed070f83583e71617c9940d4cf7c08a3", + "content-hash": "3587c34f2b45c6c30d140797a60d50b4", "packages": [ { "name": "anhskohbo/no-captcha", @@ -5072,6 +5072,91 @@ } ], "packages-dev": [ + { + "name": "barryvdh/laravel-debugbar", + "version": "v3.6.2", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/laravel-debugbar.git", + "reference": "70b89754913fd89fef16d0170a91dbc2a5cd633a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/70b89754913fd89fef16d0170a91dbc2a5cd633a", + "reference": "70b89754913fd89fef16d0170a91dbc2a5cd633a", + "shasum": "" + }, + "require": { + "illuminate/routing": "^6|^7|^8", + "illuminate/session": "^6|^7|^8", + "illuminate/support": "^6|^7|^8", + "maximebf/debugbar": "^1.16.3", + "php": ">=7.2", + "symfony/debug": "^4.3|^5", + "symfony/finder": "^4.3|^5" + }, + "require-dev": { + "mockery/mockery": "^1.3.3", + "orchestra/testbench-dusk": "^4|^5|^6", + "phpunit/phpunit": "^8.5|^9.0", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.5-dev" + }, + "laravel": { + "providers": [ + "Barryvdh\\Debugbar\\ServiceProvider" + ], + "aliases": { + "Debugbar": "Barryvdh\\Debugbar\\Facade" + } + } + }, + "autoload": { + "psr-4": { + "Barryvdh\\Debugbar\\": "src/" + }, + "files": [ + "src/helpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "PHP Debugbar integration for Laravel", + "keywords": [ + "debug", + "debugbar", + "laravel", + "profiler", + "webprofiler" + ], + "support": { + "issues": "https://github.com/barryvdh/laravel-debugbar/issues", + "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.6.2" + }, + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2021-06-14T14:29:26+00:00" + }, { "name": "doctrine/instantiator", "version": "1.4.0", @@ -5513,6 +5598,71 @@ }, "time": "2020-07-09T08:09:16+00:00" }, + { + "name": "maximebf/debugbar", + "version": "v1.16.5", + "source": { + "type": "git", + "url": "https://github.com/maximebf/php-debugbar.git", + "reference": "6d51ee9e94cff14412783785e79a4e7ef97b9d62" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/6d51ee9e94cff14412783785e79a4e7ef97b9d62", + "reference": "6d51ee9e94cff14412783785e79a4e7ef97b9d62", + "shasum": "" + }, + "require": { + "php": "^7.1|^8", + "psr/log": "^1.0", + "symfony/var-dumper": "^2.6|^3|^4|^5" + }, + "require-dev": { + "phpunit/phpunit": "^7.5.20 || ^9.4.2" + }, + "suggest": { + "kriswallsmith/assetic": "The best way to manage assets", + "monolog/monolog": "Log using Monolog", + "predis/predis": "Redis storage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.16-dev" + } + }, + "autoload": { + "psr-4": { + "DebugBar\\": "src/DebugBar/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Maxime Bouroumeau-Fuseau", + "email": "maxime.bouroumeau@gmail.com", + "homepage": "http://maximebf.com" + }, + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "Debug bar in the browser for php application", + "homepage": "https://github.com/maximebf/php-debugbar", + "keywords": [ + "debug", + "debugbar" + ], + "support": { + "issues": "https://github.com/maximebf/php-debugbar/issues", + "source": "https://github.com/maximebf/php-debugbar/tree/v1.16.5" + }, + "time": "2020-12-07T11:07:24+00:00" + }, { "name": "mockery/mockery", "version": "1.4.3", @@ -7452,6 +7602,75 @@ ], "time": "2020-09-28T06:39:44+00:00" }, + { + "name": "symfony/debug", + "version": "v4.4.25", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "a8d2d5c94438548bff9f998ca874e202bb29d07f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/a8d2d5c94438548bff9f998ca874e202bb29d07f", + "reference": "a8d2d5c94438548bff9f998ca874e202bb29d07f", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "~1.0", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/http-kernel": "<3.4" + }, + "require-dev": { + "symfony/http-kernel": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/debug/tree/v4.4.25" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-05-26T17:39:37+00:00" + }, { "name": "theseer/tokenizer", "version": "1.2.0", @@ -7512,5 +7731,5 @@ "php": "^7.3" }, "platform-dev": [], - "plugin-api-version": "2.1.0" + "plugin-api-version": "2.0.0" } diff --git a/flexiapi/composer.phar b/flexiapi/composer.phar index 825d304ef20a4c3b6690464a0480099c687a9a0b..0108ce7ded9a3997bcfaa32f320a038d1a0ba9e6 100755 GIT binary patch delta 7397 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 Sb~SRtP$(a^LSkHM+`j=^yF}jr delta 7154 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 CTs(&W diff --git a/flexiapi/database/migrations/2020_11_30_123051_create_aliases_table.php b/flexiapi/database/migrations/2020_11_30_123051_create_aliases_table.php index 03e9ccf..e526ed2 100644 --- a/flexiapi/database/migrations/2020_11_30_123051_create_aliases_table.php +++ b/flexiapi/database/migrations/2020_11_30_123051_create_aliases_table.php @@ -1,4 +1,21 @@ . +*/ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; diff --git a/flexiapi/database/migrations/2021_02_10_160119_add_phone_change_codes_table.php b/flexiapi/database/migrations/2021_02_10_160119_add_phone_change_codes_table.php index d8d9981..0228afb 100644 --- a/flexiapi/database/migrations/2021_02_10_160119_add_phone_change_codes_table.php +++ b/flexiapi/database/migrations/2021_02_10_160119_add_phone_change_codes_table.php @@ -1,4 +1,21 @@ . +*/ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; diff --git a/flexiapi/database/migrations/2021_02_23_152536_create_tokens_table.php b/flexiapi/database/migrations/2021_02_23_152536_create_tokens_table.php index 12b49a2..6bf8f08 100644 --- a/flexiapi/database/migrations/2021_02_23_152536_create_tokens_table.php +++ b/flexiapi/database/migrations/2021_02_23_152536_create_tokens_table.php @@ -1,4 +1,21 @@ . +*/ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; diff --git a/flexiapi/database/migrations/2021_03_02_151353_create_activation_expirations_table.php b/flexiapi/database/migrations/2021_03_02_151353_create_activation_expirations_table.php index 937a5ab..df6b465 100644 --- a/flexiapi/database/migrations/2021_03_02_151353_create_activation_expirations_table.php +++ b/flexiapi/database/migrations/2021_03_02_151353_create_activation_expirations_table.php @@ -1,4 +1,21 @@ . +*/ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; diff --git a/flexiapi/resources/views/admin/account/delete.blade.php b/flexiapi/resources/views/admin/account/delete.blade.php new file mode 100644 index 0000000..0459ffd --- /dev/null +++ b/flexiapi/resources/views/admin/account/delete.blade.php @@ -0,0 +1,24 @@ +@extends('layouts.account') + +@section('breadcrumb') + + +@endsection + +@section('content') + +

Delete an account

+ +{!! Form::open(['route' => 'admin.account.destroy', 'method' => 'delete']) !!} + +

You are going to permanently delete the following account account. Please confirm your action.

+

{{ $account->identifier }}

+ +{!! Form::hidden('account_id', $account->id) !!} + +{!! Form::submit('Delete', ['class' => 'btn btn-danger btn-centered']) !!} +{!! Form::close() !!} + +@endsection \ No newline at end of file diff --git a/flexiapi/resources/views/admin/account/index.blade.php b/flexiapi/resources/views/admin/account/index.blade.php index 30e8144..9f60537 100644 --- a/flexiapi/resources/views/admin/account/index.blade.php +++ b/flexiapi/resources/views/admin/account/index.blade.php @@ -29,31 +29,31 @@ # - Identifier - Email + Identifier (email) Created - Tags @foreach ($accounts as $account) - {{ $account->id }} - - {{ $account->identifier }} - {{ $account->email }} - {{ $account->creation_time}} - + {{ $account->id }} +
@if ($account->activated) Activated @else Unactivated @endif @if ($account->admin) - Admin +
Admin + @endif + + {{ $account->identifier }} + @if ($account->email) + ({{ $account->email }}) @endif + {{ $account->creation_time}} @endforeach diff --git a/flexiapi/resources/views/admin/account/show.blade.php b/flexiapi/resources/views/admin/account/show.blade.php index 46a8b0b..61d285e 100644 --- a/flexiapi/resources/views/admin/account/show.blade.php +++ b/flexiapi/resources/views/admin/account/show.blade.php @@ -33,10 +33,23 @@

@if ($account->admin) - Activated Remove admin role + Admin Remove admin role @else - Unactivated Add admin role + Not Admin Add admin role @endif

+Delete the account + +@if ($account->confirmation_key) +

Provisioning

+

Share the following picture with the user or the one-time-use link bellow.

+ +
+ +
+

The following link can only be visited once

+ +@endif + @endsection \ No newline at end of file diff --git a/flexiapi/routes/web.php b/flexiapi/routes/web.php index 8a950ae..ed0e7bf 100644 --- a/flexiapi/routes/web.php +++ b/flexiapi/routes/web.php @@ -73,4 +73,7 @@ Route::group(['middleware' => 'auth.admin'], function () { Route::get('admin/accounts/{id}/deactivate', 'Admin\AccountController@deactivate')->name('admin.account.deactivate'); Route::get('admin/accounts/{id}/admin', 'Admin\AccountController@admin')->name('admin.account.admin'); Route::get('admin/accounts/{id}/unadmin', 'Admin\AccountController@unadmin')->name('admin.account.unadmin'); + + Route::get('admin/accounts/{id}/delete', 'Admin\AccountController@delete')->name('admin.account.delete'); + Route::delete('admin/accounts', 'Admin\AccountController@destroy')->name('admin.account.destroy'); }); \ No newline at end of file diff --git a/flexisip-account-manager.spec b/flexisip-account-manager.spec index 199afcb..b5af33a 100644 --- a/flexisip-account-manager.spec +++ b/flexisip-account-manager.spec @@ -8,7 +8,7 @@ #%define _datadir %{_datarootdir} #%define _docdir %{_datadir}/doc -%define build_number 85 +%define build_number 86 %define var_dir /var/opt/belledonne-communications %define opt_dir /opt/belledonne-communications/share/flexisip-account-manager