From e005cefbd58992b3baa68f9970999d6376bddbd0 Mon Sep 17 00:00:00 2001 From: Will Browning Date: Mon, 9 Sep 2019 14:46:50 +0100 Subject: [PATCH] Added UUID domain options --- app/Http/Controllers/AliasController.php | 7 ++- .../Controllers/Auth/RegisterController.php | 2 +- .../Requests/EditDefaultRecipientRequest.php | 2 +- app/Http/Requests/StoreAliasRequest.php | 35 +++++++++++ app/Http/Requests/StoreRecipientRequest.php | 2 +- resources/js/pages/Aliases.vue | 62 ++++++++++++++++--- resources/views/aliases/index.blade.php | 2 +- tests/Feature/AliasesTest.php | 2 +- 8 files changed, 99 insertions(+), 15 deletions(-) create mode 100644 app/Http/Requests/StoreAliasRequest.php diff --git a/app/Http/Controllers/AliasController.php b/app/Http/Controllers/AliasController.php index 5f05c9d..f5babcb 100644 --- a/app/Http/Controllers/AliasController.php +++ b/app/Http/Controllers/AliasController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Http\Requests\StoreAliasRequest; use App\Http\Requests\UpdateAliasRequest; use App\Http\Resources\AliasResource; use Ramsey\Uuid\Uuid; @@ -22,7 +23,7 @@ class AliasController extends Controller ]); } - public function store() + public function store(StoreAliasRequest $request) { if (user()->hasExceededNewAliasLimit()) { return response('', 429); @@ -32,9 +33,9 @@ class AliasController extends Controller $alias = user()->aliases()->create([ 'id' => $uuid, - 'email' => $uuid.'@'.config('anonaddy.domain'), + 'email' => $uuid.'@'.$request->domain, 'local_part' => $uuid, - 'domain' => config('anonaddy.domain') + 'domain' => $request->domain ]); return new AliasResource($alias->fresh()); diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index 95c85d4..f171207 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -66,7 +66,7 @@ class RegisterController extends Controller ], 'email' => [ 'required', - 'email', + 'email:rfc,dns', 'max:254', 'confirmed', new RegisterUniqueRecipient diff --git a/app/Http/Requests/EditDefaultRecipientRequest.php b/app/Http/Requests/EditDefaultRecipientRequest.php index 5a004d7..fe75fb5 100644 --- a/app/Http/Requests/EditDefaultRecipientRequest.php +++ b/app/Http/Requests/EditDefaultRecipientRequest.php @@ -27,7 +27,7 @@ class EditDefaultRecipientRequest extends FormRequest return [ 'email' => [ 'required', - 'email', + 'email:rfc,dns', 'max:254', 'confirmed', new RegisterUniqueRecipient, diff --git a/app/Http/Requests/StoreAliasRequest.php b/app/Http/Requests/StoreAliasRequest.php new file mode 100644 index 0000000..a6c656c --- /dev/null +++ b/app/Http/Requests/StoreAliasRequest.php @@ -0,0 +1,35 @@ + [ + 'required', + 'string', + Rule::in(config('anonaddy.all_domains')) + ] + ]; + } +} diff --git a/app/Http/Requests/StoreRecipientRequest.php b/app/Http/Requests/StoreRecipientRequest.php index aaef522..cda726d 100644 --- a/app/Http/Requests/StoreRecipientRequest.php +++ b/app/Http/Requests/StoreRecipientRequest.php @@ -29,7 +29,7 @@ class StoreRecipientRequest extends FormRequest 'required', 'string', 'max:254', - 'email', + 'email:rfc,dns', new UniqueRecipient ] ]; diff --git a/resources/js/pages/Aliases.vue b/resources/js/pages/Aliases.vue index 74f598e..58c86e2 100644 --- a/resources/js/pages/Aliases.vue +++ b/resources/js/pages/Aliases.vue @@ -490,6 +490,10 @@

86064c92-da41-443e-a2bf-5a7b0247842f@{{ domain }}

+

+ Useful if you do not wish to include your username in the email as a potential link + between aliases. +

@@ -500,14 +504,47 @@ > Generate new UUID alias +

- This will generate a new unique alias in the form of

- 86064c92-da41-443e-a2bf-5a7b0247842f@{{ domain }}

- Useful if you do not wish to include your username in the email as a potential link - between aliases.

+ This will generate a new unique alias in the form of + 86064c92-da41-443e-a2bf-5a7b0247842f@{{ domain }} +

+ +

Other aliases e.g. alias@{{ subdomain }} are created automatically when they receive their first email.

+ + +
+ +
+ + + +
+
+