From 1ba685c484ed6fff769e524e9252bff3e2d7c8d3 Mon Sep 17 00:00:00 2001 From: Milos Holba Date: Fri, 7 May 2021 16:22:31 +0200 Subject: [PATCH] make personal token for the users --- .../Controllers/User/AccountController.php | 39 +++ ...01_create_personal_access_tokens_table.php | 36 +++ public/mix-manifest.json | 228 +++++++----------- .../js/components/FilesView/CheckBox.vue | 14 +- routes/user.php | 3 + tests/Feature/Accounts/UserAccountTest.php | 108 +++++++++ webpack.mix.js | 12 +- 7 files changed, 287 insertions(+), 153 deletions(-) create mode 100644 database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php diff --git a/app/Http/Controllers/User/AccountController.php b/app/Http/Controllers/User/AccountController.php index d1ae08bf..694f5310 100644 --- a/app/Http/Controllers/User/AccountController.php +++ b/app/Http/Controllers/User/AccountController.php @@ -125,4 +125,43 @@ class AccountController extends Controller return response('Changed!', 204); } + + /** + * Get all user tokens + * + * @return Collection + */ + public function tokens_index() + { + return response( + Auth::user()->tokens()->get(), + 200 + ); + } + + /** + * Create token + * + * @return Collection + */ + public function create_token() + { + return response( + Auth::user()->createToken('token'), + 201 + ); + } + + /** + * Revoke token + * + * @param $id + * @return ResponseFactory|\Illuminate\Http\Response + */ + public function revoke_token($id) + { + Auth::user()->tokens()->whereId($id)->delete(); + + return response('Deleted!', 204); + } } diff --git a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php new file mode 100644 index 00000000..677dea35 --- /dev/null +++ b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php @@ -0,0 +1,36 @@ +bigIncrements('id'); + $table->uuidMorphs('tokenable'); + $table->string('name'); + $table->string('token', 64)->unique(); + $table->text('abilities')->nullable(); + $table->timestamp('last_used_at')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('personal_access_tokens'); + } +} diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 5761d069..69009780 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,146 +1,96 @@ { "/js/main.js": "/js/main.js", "/css/app.css": "/css/app.css", - "/chunks/admin.js": "/chunks/admin.js?id=c38d621657df2c497cdf", - "/chunks/admin-account.js": "/chunks/admin-account.js?id=198a19c638c18b646932", - "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js?id=5b58e790017ba79a9c0a", - "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~cf616679.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~cf616679.js?id=e9563af124abc56286a6", - "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~eeab5771.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~eeab5771.js?id=6e9fc019abb3a3ab92c4", - "/chunks/admin~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js?id=16fe8f01ecfcf8a38bfc", - "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared/file-browser.js?id=5f42810b04d0d639c26b", - "/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=23a77862dbaf691e79ff", - "/chunks/admin~chunks/platform~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/shared.js?id=dbba22cbb90e9c2d5263", - "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=0d48d3ee67e52ce7075d", - "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js?id=3123b823cec4ff05ba1d", - "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=5f024fcfb5738c1bad51", - "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js?id=a34b3695aef18fe39b4d", - "/chunks/app-billings.js": "/chunks/app-billings.js?id=cce9ffaf91caa53919c5", - "/chunks/app-email.js": "/chunks/app-email.js?id=425a20b4c867864e2b5f", - "/chunks/app-index.js": "/chunks/app-index.js?id=9822fa7e5b0abd86bc81", - "/chunks/app-language.js": "/chunks/app-language.js?id=6495b68f5c8587ef09a1", - "/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pag~824d674f.js": "/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pag~824d674f.js?id=674801412cdbb797c356", - "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~38c276fc.js": "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~38c276fc.js?id=9f6174e3ac356bf2d95c", - "/chunks/app-others.js": "/chunks/app-others.js?id=af37ea9e6ced9bbaada4", - "/chunks/app-payments.js": "/chunks/app-payments.js?id=2cf05bdb4c6b31c05435", - "/chunks/app-settings.js": "/chunks/app-settings.js?id=264e16ec574e64924304", - "/chunks/app-setup.js": "/chunks/app-setup.js?id=ee3c6907db1382a8321c", - "/chunks/billings-detail.js": "/chunks/billings-detail.js?id=69312d2ba40cc96ea2ce", - "/chunks/contact-us.js": "/chunks/contact-us.js?id=664b93e751ad0682e084", - "/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js": "/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js?id=fe6ba5078af5e7e39111", - "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=1263d475eb76b9c52186", - "/chunks/dashboard.js": "/chunks/dashboard.js?id=5f78114f9e5a560aaa33", - "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js": "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js?id=4426e7c5e3f8df8f821e", - "/chunks/database.js": "/chunks/database.js?id=c1f47b34e5aea9821946", - "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=0d22436e85ef56a3ba3a", - "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=c957e3b6b9622d63bff1", - "/chunks/files.js": "/chunks/files.js?id=0183d3479de18b026d69", - "/chunks/files~chunks/platform~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared-files~chunks/shared/file-browser.js?id=2b98f258d581a1fa3d4b", - "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js?id=a79935a516885565c6b1", - "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~chunks/sha~8510f6c9.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~chunks/sha~8510f6c9.js?id=c098c4f94c84cf1a4fee", - "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared/file-browser~chunks/user~9058a49f.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared/file-browser~chunks/user~9058a49f.js?id=943a9cfe967ed8a79379", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.js?id=0cb7a75ebc3fdce3d172", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js?id=05eb16be50833041e02b", - "/chunks/files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared/file-browser.js?id=5fa82605a5015e70afa4", - "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=081c2f061dbfe6176664", - "/chunks/homepage.js": "/chunks/homepage.js?id=46bfaa68c5839aedb321", - "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=9c754ded4597f026a455", - "/chunks/invoices.js": "/chunks/invoices.js?id=7c70937d5b8f8c484619", - "/chunks/not-found.js": "/chunks/not-found.js?id=09062085e16689e1b765", - "/chunks/page-edit.js": "/chunks/page-edit.js?id=f0dc19b526fc63e235ba", - "/chunks/pages.js": "/chunks/pages.js?id=bd0d200235c64e6eac01", - "/chunks/plan.js": "/chunks/plan.js?id=3cd65aa448bf86a2bba4", - "/chunks/plan-create.js": "/chunks/plan-create.js?id=4426e1eb59bd47a2ee33", - "/chunks/plan-delete.js": "/chunks/plan-delete.js?id=27d0d200d4ee4f6c4f42", - "/chunks/plan-settings.js": "/chunks/plan-settings.js?id=ee459548efce939c25c4", - "/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=dbef905bce5ae17f6b2c", - "/chunks/plans.js": "/chunks/plans.js?id=26101635974fe98c4b69", - "/chunks/platform.js": "/chunks/platform.js?id=a8c9c8844dc13e6f65eb", - "/chunks/platform~chunks/shared.js": "/chunks/platform~chunks/shared.js?id=093cdefc9a915b3c3613", - "/chunks/profile.js": "/chunks/profile.js?id=3e2e414d8f729edd6191", - "/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=d5e86dc12f9f0a2c7530", - "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=e9a9e49d06a0dd4d6075", - "/chunks/settings.js": "/chunks/settings.js?id=09f68cdc6699601a9b78", - "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=4eee568bd983c0892a91", - "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=c07d3e53c97808df8193", - "/chunks/settings-password.js": "/chunks/settings-password.js?id=2717bb0c31f14f3bb50f", - "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=b14750a86af0045e24e6", - "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=7a28460839d2d353d0ea", - "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=c79e9f210e9f3d72fc98", - "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=9a2681496cf04c877d67", - "/chunks/shared.js": "/chunks/shared.js?id=6ee8ec3a6e1109d125c6", - "/chunks/shared-files.js": "/chunks/shared-files.js?id=1b4d526397740c10e275", - "/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=8cab16150d5dd868573f", - "/chunks/shared/file-browser.js": "/chunks/shared/file-browser.js?id=fbb1b55cd33b4fee9a35", - "/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=dedbebd190f95dcaa190", - "/chunks/sign-in.js": "/chunks/sign-in.js?id=d414978b9785e6cc58d5", - "/chunks/sign-up.js": "/chunks/sign-up.js?id=dc7fdbad91b4845b07bc", - "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=c23b1d4f071206925640", - "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=cb13e15b2f4587230b6f", - "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=ce9471908bc2b90a4b9e", - "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=84bab8548bfbbffa25f9", - "/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=633e70269c9af2cc18c6", - "/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=c2506cf3963e0c02b1f7", - "/chunks/user.js": "/chunks/user.js?id=2fa5714cacefd802813c", - "/chunks/user-create.js": "/chunks/user-create.js?id=3283f56db6d5bc916671", - "/chunks/user-delete.js": "/chunks/user-delete.js?id=238bcae61a0840b4ab56", - "/chunks/user-detail.js": "/chunks/user-detail.js?id=34dcb3559f7a84f77b81", - "/chunks/user-invoices.js": "/chunks/user-invoices.js?id=3ec3f0661bd84f4eb066", - "/chunks/user-password.js": "/chunks/user-password.js?id=f05e2f2b49e9800bfbfb", - "/chunks/user-storage.js": "/chunks/user-storage.js?id=939536c8745fae31b7ea", - "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=b75ee69e42378faacdeb", - "/chunks/users.js": "/chunks/users.js?id=6218027fc5c3a4bfa2ad", + "/chunks/admin.js": "/chunks/admin.js?id=449d7c2deaee52332ee6", + "/chunks/admin-account.js": "/chunks/admin-account.js?id=a494485bd06a9f4085dc", + "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js?id=789a8508d6219be0904d", + "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~cf616679.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~cf616679.js?id=bf8c299c1121b1370723", + "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~eeab5771.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~eeab5771.js?id=1d83683f5afa0abb114d", + "/chunks/admin~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js?id=6591c37b26d42affb1ba", + "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared/file-browser.js?id=92464de16e62d46c1cef", + "/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=6f592b4466515d3d3466", + "/chunks/admin~chunks/platform~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/shared.js?id=ea0cb4ec8487af4776eb", + "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=581e10d2955198122d3b", + "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js?id=69d6fefe404b9ec4f0de", + "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=07a6859a69c14d4bc289", + "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~b9e5655a.js?id=b8f2628bc5946089d58a", + "/chunks/app-billings.js": "/chunks/app-billings.js?id=dd414e19e670ce8d4a27", + "/chunks/app-email.js": "/chunks/app-email.js?id=ef67db304be7d8f822e9", + "/chunks/app-index.js": "/chunks/app-index.js?id=17a58daa7c0774e140bb", + "/chunks/app-language.js": "/chunks/app-language.js?id=14b28923d876241b4324", + "/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pag~824d674f.js": "/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pag~824d674f.js?id=53e545b823ce2e687b31", + "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~38c276fc.js": "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~38c276fc.js?id=f90c5804695eeea92af0", + "/chunks/app-others.js": "/chunks/app-others.js?id=314e16368587d44da0fe", + "/chunks/app-payments.js": "/chunks/app-payments.js?id=a8167d5a9383b34ac322", + "/chunks/app-settings.js": "/chunks/app-settings.js?id=7036abc45d63af4fe972", + "/chunks/app-setup.js": "/chunks/app-setup.js?id=99d86e5e53e0961538d4", + "/chunks/billings-detail.js": "/chunks/billings-detail.js?id=82e8c849b19aec28d472", + "/chunks/contact-us.js": "/chunks/contact-us.js?id=0174680b208bf0c3894a", + "/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js": "/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js?id=023e6b0ad58fa1dc5bc6", + "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=86c558e2cb256bda86c3", + "/chunks/dashboard.js": "/chunks/dashboard.js?id=e2a93e2ceb83cab77b77", + "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js": "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js?id=8e86179595c935837731", + "/chunks/database.js": "/chunks/database.js?id=52271031c5f0e31b980b", + "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=2167671fe3099f75ecfe", + "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=bf3826b620b0c0e2afcc", + "/chunks/files.js": "/chunks/files.js?id=bd3ee43e5c4447261990", + "/chunks/files~chunks/platform~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared-files~chunks/shared/file-browser.js?id=16c4a97f1ca89279f977", + "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser.js?id=651ea6b913697dd2baa9", + "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~chunks/sha~8510f6c9.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~chunks/sha~8510f6c9.js?id=1974f4af6b3bd3ead4be", + "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared/file-browser~chunks/user~9058a49f.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared/file-browser~chunks/user~9058a49f.js?id=1e2b85c13a03abc5a5b0", + "/chunks/files~chunks/shared-files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.js?id=7e717787212e97a0b511", + "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.js?id=a69d7fe4e988da69fd10", + "/chunks/files~chunks/shared/file-browser.js": "/chunks/files~chunks/shared/file-browser.js?id=c7967c7b85be5b4d186c", + "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=ebcbbc0115c1589dcca5", + "/chunks/homepage.js": "/chunks/homepage.js?id=b62a9ad724d34bcbc44d", + "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=7e0e75297f0819f38a8d", + "/chunks/invoices.js": "/chunks/invoices.js?id=b1ba41c331f013837e2d", + "/chunks/not-found.js": "/chunks/not-found.js?id=e795bd0f98216a25dc06", + "/chunks/page-edit.js": "/chunks/page-edit.js?id=9cee38d7c107e203c2ea", + "/chunks/pages.js": "/chunks/pages.js?id=2373f18eb236bf6775fa", + "/chunks/plan.js": "/chunks/plan.js?id=fd5882a90b4705a172f2", + "/chunks/plan-create.js": "/chunks/plan-create.js?id=50620ac1967620a0a304", + "/chunks/plan-delete.js": "/chunks/plan-delete.js?id=e8452bd7a4546cb9e806", + "/chunks/plan-settings.js": "/chunks/plan-settings.js?id=eed8a167312dad926ee8", + "/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=9fba55132d321415978d", + "/chunks/plans.js": "/chunks/plans.js?id=36ebc380b6e7773a04ff", + "/chunks/platform.js": "/chunks/platform.js?id=97c41ca6bb8681568014", + "/chunks/platform~chunks/shared.js": "/chunks/platform~chunks/shared.js?id=83936510b14a991c4687", + "/chunks/profile.js": "/chunks/profile.js?id=cfe327f836e44532ce19", + "/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=f532862b4c362de67360", + "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=f708db10063dd6c0a864", + "/chunks/settings.js": "/chunks/settings.js?id=f3273efbf6b6d723b8ea", + "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=3941063333004f4dd00e", + "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=905d6674b5da9271da72", + "/chunks/settings-password.js": "/chunks/settings-password.js?id=effe29e22fad25e94bf6", + "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=4fc81b4290c1d83ecd8f", + "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=ee860273cc027ffa83c1", + "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=d15d2096bcf308b21a50", + "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=d90814559910a424902d", + "/chunks/shared.js": "/chunks/shared.js?id=de5b7595a352f2614b55", + "/chunks/shared-files.js": "/chunks/shared-files.js?id=fc12ccfc8e477cd82059", + "/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=238c362399a4018549bd", + "/chunks/shared/file-browser.js": "/chunks/shared/file-browser.js?id=d630c473dc6b751ec50f", + "/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=040a7241ea133456200c", + "/chunks/sign-in.js": "/chunks/sign-in.js?id=a694e3863cefe7da1daa", + "/chunks/sign-up.js": "/chunks/sign-up.js?id=f5634301e476029d6fa1", + "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=7a9a78fcdfebbeff5c3d", + "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=314fdc603b7dd04d2b9d", + "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=de43eac3b1627e00424d", + "/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=31b402c9b3192f5c62b1", + "/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=75510b0f500e49b263d1", + "/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=f5558929ad4d183ada13", + "/chunks/user.js": "/chunks/user.js?id=a73470995a4ae3fd2881", + "/chunks/user-create.js": "/chunks/user-create.js?id=feb1c5032ff0b964b12b", + "/chunks/user-delete.js": "/chunks/user-delete.js?id=951c77a2dff38f23f44e", + "/chunks/user-detail.js": "/chunks/user-detail.js?id=35ebdcbd1bbacc93cf25", + "/chunks/user-invoices.js": "/chunks/user-invoices.js?id=6f2c5a4f63f303e68420", + "/chunks/user-password.js": "/chunks/user-password.js?id=188fc86ce187855f13f4", + "/chunks/user-storage.js": "/chunks/user-storage.js?id=cd60fa116046de0f3738", + "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=c64145dfa85586f564b0", + "/chunks/users.js": "/chunks/users.js?id=0652fa00a2b955a7c591", "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~2fac28cc.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~2fac28cc.js?id=57c854adb91ed9a9d088", "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~d5e36d91.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~d5e36d91.js?id=170765b4fd923b62195c", "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js": "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js?id=66afa0e341251a68c3d3", - "/vendors~chunks/platform~chunks/shared.js": "/vendors~chunks/platform~chunks/shared.js?id=eb141834bc24b72d8e92", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.ad1497e92742756ee754.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.ad1497e92742756ee754.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.6075dec01a21f4edf17b.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.6075dec01a21f4edf17b.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.acadbfa6a5c71152719d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.acadbfa6a5c71152719d.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.289d2774d7193c88afef.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.289d2774d7193c88afef.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.d9c83f99bf4585998b49.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.d9c83f99bf4585998b49.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.d9f4b21719cb922a7307.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.d9f4b21719cb922a7307.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.1bb28b585b9fe0239bad.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.1bb28b585b9fe0239bad.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.f309ec2dc79a68dec5ea.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.f309ec2dc79a68dec5ea.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.366de07fe61740965fef.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.366de07fe61740965fef.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.abc23f29a1d0d933f18d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.abc23f29a1d0d933f18d.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.f12ca400ac249738d782.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.f12ca400ac249738d782.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.7eccc6570968deb01482.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.7eccc6570968deb01482.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.bd0ce836728056651677.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.bd0ce836728056651677.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.028c831e977bd4fabaeb.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.028c831e977bd4fabaeb.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.449846b978fed91d5c74.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.449846b978fed91d5c74.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.49f4ee8d49cabb398f95.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.49f4ee8d49cabb398f95.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.8acb33aeda409db35893.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.8acb33aeda409db35893.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.160a9729d99cf314d12f.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.160a9729d99cf314d12f.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.97f8ed4979b53c12afa2.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.97f8ed4979b53c12afa2.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.f96a2b5fdb733427a41d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.f96a2b5fdb733427a41d.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.22fd725568a67c0af2b5.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.22fd725568a67c0af2b5.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.e6cdf6aa702e3eaacea4.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.e6cdf6aa702e3eaacea4.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.ca48f649263752d4180f.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.ca48f649263752d4180f.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.95fd678dea381239ece2.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.95fd678dea381239ece2.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.95fd678dea381239ece2.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.95fd678dea381239ece2.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.6ad983693e7656605a01.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.6ad983693e7656605a01.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.2b94f29339ccf4f7450e.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.2b94f29339ccf4f7450e.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.dc8dfc67e935654b694b.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.dc8dfc67e935654b694b.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.79e89133314cab71e7db.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.79e89133314cab71e7db.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.4219804a27fde3ebdc86.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.4219804a27fde3ebdc86.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.1f940b485877900e05ae.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.1f940b485877900e05ae.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.81b6b829bf466afa4f80.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.81b6b829bf466afa4f80.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.81b6b829bf466afa4f80.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.81b6b829bf466afa4f80.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.08a642890408f5272669.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.08a642890408f5272669.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser.24c6e6eb7864a1068b12.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser.24c6e6eb7864a1068b12.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.687f565f4a441fb7dc0f.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.687f565f4a441fb7dc0f.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.1bc2d6157d73ebf167e7.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.1bc2d6157d73ebf167e7.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.070a0e1924f3ca0a35ac.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.070a0e1924f3ca0a35ac.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.b478fb572df96c36d943.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.b478fb572df96c36d943.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.3fded538edf7ff4cee67.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.3fded538edf7ff4cee67.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.e6da4c163c7f6d57f572.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.e6da4c163c7f6d57f572.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.6231f7026a1a3b183ae4.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.6231f7026a1a3b183ae4.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.e95072620dd68c188175.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.e95072620dd68c188175.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.7b49ab94c35ca8631181.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.7b49ab94c35ca8631181.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.75ce2a4d3cf1dbb3c2aa.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.75ce2a4d3cf1dbb3c2aa.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.eb72bdfd201d391d4144.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.eb72bdfd201d391d4144.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.684de3552e6e86744382.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.684de3552e6e86744382.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.a31f1d3d39a3c8acc91d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.a31f1d3d39a3c8acc91d.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.2554bd4d3e743892b629.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.2554bd4d3e743892b629.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.ead11b9774b9e5000eaf.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared/file-browser~chunks/shared/single-file.ead11b9774b9e5000eaf.hot-update.js" + "/vendors~chunks/platform~chunks/shared.js": "/vendors~chunks/platform~chunks/shared.js?id=eb141834bc24b72d8e92" } diff --git a/resources/js/components/FilesView/CheckBox.vue b/resources/js/components/FilesView/CheckBox.vue index 9239b54b..7cdf3d74 100644 --- a/resources/js/components/FilesView/CheckBox.vue +++ b/resources/js/components/FilesView/CheckBox.vue @@ -1,8 +1,6 @@ @@ -20,8 +18,8 @@ export default { @import '@assets/vuefilemanager/_variables'; .select-box { - width: 20px; - height: 20px; + min-width: 20px; + min-height: 20px; display: flex; justify-content: center; align-items: center; @@ -32,13 +30,13 @@ export default { } } -.select-box-deactive { +.is-deactive { background-color: darken($light_background, 5%); } @media (prefers-color-scheme: dark) { - .select-box-deactive { + .is-deactive { background-color: lighten($dark_mode_foreground, 10%); } } diff --git a/routes/user.php b/routes/user.php index 7fcf4db9..8c38f383 100644 --- a/routes/user.php +++ b/routes/user.php @@ -10,8 +10,11 @@ Route::post('/check', [AuthController::class, 'check_account']); Route::group(['middleware' => ['auth:sanctum']], function () { // Account Route::patch('/relationships/settings', [AccountController::class, 'update_user_settings']); + Route::delete('/token/revoke/{id}', [AccountController::class, 'revoke_token']); + Route::post('/token/create', [AccountController::class, 'create_token']); Route::post('/password', [AccountController::class, 'change_password']); Route::get('/subscription', [SubscriptionController::class, 'show']); + Route::get('/tokens', [AccountController::class, 'tokens_index']); Route::get('/invoices', [AccountController::class, 'invoices']); Route::get('/storage', [AccountController::class, 'storage']); Route::get('/', [AccountController::class, 'user']); diff --git a/tests/Feature/Accounts/UserAccountTest.php b/tests/Feature/Accounts/UserAccountTest.php index 770a70d8..b14f15c5 100644 --- a/tests/Feature/Accounts/UserAccountTest.php +++ b/tests/Feature/Accounts/UserAccountTest.php @@ -11,6 +11,7 @@ use Illuminate\Http\UploadedFile; use Laravel\Sanctum\Sanctum; use Storage; use Tests\TestCase; +use App\Models\Folder; class UserAccountTest extends TestCase { @@ -151,4 +152,111 @@ class UserAccountTest extends TestCase ], ]); } + + /** + * @test + */ + public function it_create_user_token() + { + $user = User::factory(User::class) + ->create(); + + Sanctum::actingAs($user); + + $this->postJson('/api/user/token/create') + ->assertStatus(201); + + $this->assertDatabaseHas('personal_access_tokens', [ + 'tokenable_id' => $user->id, + ]); + } + + /** + * @test + */ + public function it_revoke_user_token() + { + $user = User::factory(User::class) + ->create(); + + Sanctum::actingAs($user); + + $user->createToken('token'); + + $token_id = $user->tokens()->first()->id; + + $this->deleteJson("/api/user/token/revoke/$token_id") + ->assertStatus(204); + + $this->assertDatabaseMissing('personal_access_tokens', [ + 'id' => $token_id + ]); + + } + + /** + * @test + */ + public function it_get_user_tokens() + { + $user = User::factory(User::class) + ->create(); + + Sanctum::actingAs($user); + + $user->createToken('token'); + + $token = $user->tokens()->first(); + + $this->getJson('/api/user/tokens') + ->assertStatus(200) + ->assertJsonFragment([ + "id" => $token->id, + "tokenable_type" => $token->tokenable_type, + "tokenable_id" => $user->id, + "name" => $token->name, + "abilities" => $token->abilities + ]); + } + + /** + * @test + */ + public function it_use_user_token_to_request() + { + $user = User::factory(User::class) + ->create(); + + $folder = Folder::factory(Folder::class) + ->create([ + 'user_id' => $user->id, + ]); + + $token = $user->createToken('token')->plainTextToken; + + $this->assertDatabaseHas('personal_access_tokens', [ + 'tokenable_id' => $user->id + ]); + + $this->assertDatabaseHas('folders', [ + 'id' => $folder->id, + 'user_id' => $user->id + ]); + + $response = $this->call('GET', "api/browse/folders/$folder->id", + [], [], [], [ + 'Content-type' => 'application/json', + 'Accept' => 'application/json', + 'Authorization' => 'Bearer ' .$token, + ]); + + + // $response->assertJsonFragment([ + // 'id' => $folder->id, + // 'user_id' => $user->id, + // ]); + + dd($response); + + } } diff --git a/webpack.mix.js b/webpack.mix.js index 2d5c236f..effec288 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -34,12 +34,12 @@ mix.js('resources/js/main.js', 'public/js') clientLogLevel: 'none' } }) - .options({ - hmrOptions: { - host: '192.168.1.198', - port: '8080' - }, - }) + // .options({ + // hmrOptions: { + // host: 'vuefilemanager.test', + // port: '80' + // }, + // }) .disableNotifications(); if (mix.inProduction()) {