Personal Access Token page implementation

This commit is contained in:
Peter Papp
2021-07-18 13:32:08 +02:00
parent ddf88304ff
commit a9a572c434
8 changed files with 323 additions and 46 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+6 -1
View File
@@ -18,7 +18,12 @@ use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable implements MustVerifyEmail
{
use Notifiable, Billable, Sortable, HasFactory, HasApiTokens, TwoFactorAuthenticatable;
use TwoFactorAuthenticatable;
use HasApiTokens;
use Notifiable;
use HasFactory;
use Billable;
use Sortable;
protected $guarded = [
'id',
+1 -1
View File
@@ -398,7 +398,7 @@ return [
'menu.files' => 'Files',
'menu.latest' => 'Recent Uploads',
'menu.logout' => 'Log Out',
'menu.password' => 'Account Security',
'menu.password' => 'Security & API',
'menu.profile' => 'Profile Settings',
'menu.settings' => 'Settings',
'menu.shared' => 'Shared Files',
+162 -24
View File
@@ -2,7 +2,7 @@
"/js/main.js": "/js/main.js",
"/css/app.css": "/css/app.css",
"/chunks/admin.js": "/chunks/admin.js?id=baf8a45b3c1d04f09229",
"/chunks/admin-account.js": "/chunks/admin-account.js?id=61bd29aac87199e45174",
"/chunks/admin-account.js": "/chunks/admin-account.js?id=d8cce8af7d4d0650d44b",
"/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=d21b5946c88a87e9099d",
"/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~a7b1c983.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~a7b1c983.js?id=b80fc9fc5b08a9c60e2e",
"/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=b26eff2899df7f85229d",
@@ -13,28 +13,28 @@
"/chunks/admin~chunks/platform~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/shared.js?id=d5f38340fc411f440efd",
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=b709bf1d7c3cd24f9529",
"/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=075ff381293e1a20d167",
"/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=5f27527c258dada4aeb9",
"/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=4261df947b3c3857b029",
"/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=b6c9565875974d8c350c",
"/chunks/app-billings.js": "/chunks/app-billings.js?id=b23ac97d9e65beff5fc6",
"/chunks/app-email.js": "/chunks/app-email.js?id=35afede5ea121718e2cc",
"/chunks/app-index.js": "/chunks/app-index.js?id=0d8a74f6041001c36ab3",
"/chunks/app-language.js": "/chunks/app-language.js?id=8f77e8eebf32943fdf4b",
"/chunks/app-language.js": "/chunks/app-language.js?id=4fcdf80a303651cbbf71",
"/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=2551061f37c2a8056921",
"/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~0d12a0aa.js": "/chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/pages~chunks/plans~chunks/s~0d12a0aa.js?id=47e97b1952f5eef3bb34",
"/chunks/app-others.js": "/chunks/app-others.js?id=a16de82f2298df235166",
"/chunks/app-payments.js": "/chunks/app-payments.js?id=245920077be074208693",
"/chunks/app-settings.js": "/chunks/app-settings.js?id=d57e806c59d1aef2eb3a",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=526bb7b757956f6c70c3",
"/chunks/billings-detail.js": "/chunks/billings-detail.js?id=3805f23ba0a474ce7b4e",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=e3695433cd0846d6584e",
"/chunks/billings-detail.js": "/chunks/billings-detail.js?id=91a83745586b01dc470b",
"/chunks/contact-us.js": "/chunks/contact-us.js?id=67b977184f0744593de9",
"/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js": "/chunks/contact-us~chunks/dynamic-page~chunks/homepage.js?id=2a8def187ec322eb760e",
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=72d02c781aa8e6295069",
"/chunks/dashboard.js": "/chunks/dashboard.js?id=a7aef88def02bf2fec08",
"/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=1027aa9c1e090b196d29",
"/chunks/database.js": "/chunks/database.js?id=27ab279a8b380da7a0e8",
"/chunks/database.js": "/chunks/database.js?id=75a834593eb79ffbbf4c",
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=1141f8e183483da82e8a",
"/chunks/email-verified.js": "/chunks/email-verified.js?id=60a7eabffc13b2fe48e0",
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=041528704987f876c2d0",
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=8602919284450d1331ca",
"/chunks/files.js": "/chunks/files.js?id=54c6dddb471986e202f3",
"/chunks/files~chunks/platform~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared/file-browser.js?id=f97243d3db23c6255bc5",
"/chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js": "/chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js?id=3b96cba1e5482e4c33d4",
@@ -44,13 +44,13 @@
"/chunks/files~chunks/shared/file-browser~chunks/shared/single-file.js": "/chunks/files~chunks/shared/file-browser~chunks/shared/single-file.js?id=a6be7116bbdadfb8b1cc",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=96019e230f0c5b59478a",
"/chunks/homepage.js": "/chunks/homepage.js?id=5a299216398f59a4947b",
"/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=12cbea54eb6f5b94606c",
"/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=0fe6c45de3fe3c75bd04",
"/chunks/invoices.js": "/chunks/invoices.js?id=35179ba2b74cdaf74492",
"/chunks/not-found.js": "/chunks/not-found.js?id=3f0c127b00d113541acc",
"/chunks/page-edit.js": "/chunks/page-edit.js?id=761c916a5efdee5ffddd",
"/chunks/page-edit.js": "/chunks/page-edit.js?id=2121cd2ed1ba9b11e678",
"/chunks/pages.js": "/chunks/pages.js?id=7b3c7ee8c586e73fe65a",
"/chunks/plan.js": "/chunks/plan.js?id=c4cc3da1bedaa9139087",
"/chunks/plan-create.js": "/chunks/plan-create.js?id=2a672b390de82eb8cef6",
"/chunks/plan-create.js": "/chunks/plan-create.js?id=a94d9749db6f76f7a76b",
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=f00946b7df419813f099",
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=dbc08f8cdc23900ef40a",
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=8c4b655b9286e06894c5",
@@ -58,15 +58,15 @@
"/chunks/platform.js": "/chunks/platform.js?id=377133abe0c9b3471bda",
"/chunks/platform~chunks/shared.js": "/chunks/platform~chunks/shared.js?id=be3d7cf51585313cf53b",
"/chunks/profile.js": "/chunks/profile.js?id=41b536880e846017d2d0",
"/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=93ffe6eca4dcafbe8234",
"/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=fd25990d1ccec0294602",
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=b35e751cdc1946a4fb60",
"/chunks/settings.js": "/chunks/settings.js?id=5ac359cf5b836e66708d",
"/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=7404a1125aee6014b72a",
"/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=094eb70eb2fa6b7c8dd2",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=5a905222648d4b4cdc97",
"/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=47ad97b554fcc1564685",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=b06d4a1d504b2a6cbeed",
"/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=1bffa4ae7d545af08355",
"/chunks/settings.js": "/chunks/settings.js?id=03e8ad7276ef26cb279e",
"/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=0e818baec7f92c7fa542",
"/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=eab2781e9935230c6971",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=b6d2bfbdff952d9e60b3",
"/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=1a1c7f6e9c2857ec941f",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=682f4f690ac252a78a3a",
"/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=4f1793d53633a2c4cc18",
"/chunks/settings~chunks/settings-password.js": "/chunks/settings~chunks/settings-password.js?id=f5aaffe3aa073cb2ee19",
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=41d3478184ec24644a1c",
"/chunks/shared.js": "/chunks/shared.js?id=7524b7a783d4aed23794",
@@ -75,20 +75,20 @@
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=7886247bb35deada28a2",
"/chunks/sign-in.js": "/chunks/sign-in.js?id=799cae3044c4c56debf8",
"/chunks/sign-up.js": "/chunks/sign-up.js?id=b30b10ca09b115efc6ca",
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=b2bc73016f0811f6838d",
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=e12081daec0f6ea047ab",
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=3beb031ba99961e8c51c",
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=4ae406cdb5805d9c4a45",
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=a09dc140a3914fb64a1a",
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=3fe276a31a66ba244d10",
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=5dceae951ef1a97b3866",
"/chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/upgrade-billing~chunks/upgrade-plan.js?id=43888143d0a6afe67d7a",
"/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=5979a154f760a992e617",
"/chunks/user.js": "/chunks/user.js?id=41076be9126702330159",
"/chunks/user-create.js": "/chunks/user-create.js?id=c65b1718b207ae7b678e",
"/chunks/user-create.js": "/chunks/user-create.js?id=0d0040fbb5361bb061d6",
"/chunks/user-delete.js": "/chunks/user-delete.js?id=ecebc7e50b64744420c3",
"/chunks/user-detail.js": "/chunks/user-detail.js?id=7ae038f6b4a4683c5bdb",
"/chunks/user-invoices.js": "/chunks/user-invoices.js?id=1395c30e08946026fbc4",
"/chunks/user-password.js": "/chunks/user-password.js?id=f5fa3532fb7f4f5f2707",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=e19c7dee4ef5eb38a075",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=c6ec1b7215530cfdbceb",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=3f0b6e06821fa74183d9",
"/chunks/users.js": "/chunks/users.js?id=71de2e012c4c566a8ec3",
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~6c99cc74.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~6c99cc74.js?id=0a6998f62a162c08a48f",
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~cfac0ed6.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~cfac0ed6.js?id=f66c7653a087fe1f3320",
@@ -129,5 +129,143 @@
"/chunks/settings.2e6e7181135688eb9895.hot-update.js": "/chunks/settings.2e6e7181135688eb9895.hot-update.js",
"/chunks/settings.caf2daafbba194301628.hot-update.js": "/chunks/settings.caf2daafbba194301628.hot-update.js",
"/chunks/settings.d8e4f0a17901aa0dcb5c.hot-update.js": "/chunks/settings.d8e4f0a17901aa0dcb5c.hot-update.js",
"/chunks/settings.448ed3b222a05345f252.hot-update.js": "/chunks/settings.448ed3b222a05345f252.hot-update.js"
"/chunks/settings.448ed3b222a05345f252.hot-update.js": "/chunks/settings.448ed3b222a05345f252.hot-update.js",
"/chunks/settings-password.aaa5822dafcfc16c2193.hot-update.js": "/chunks/settings-password.aaa5822dafcfc16c2193.hot-update.js",
"/chunks/settings-password.7d0808fbd0d801dbaac5.hot-update.js": "/chunks/settings-password.7d0808fbd0d801dbaac5.hot-update.js",
"/chunks/settings-password.08923cd3b445a335eb1e.hot-update.js": "/chunks/settings-password.08923cd3b445a335eb1e.hot-update.js",
"/chunks/settings-password.322a8974a9607f8b6cd5.hot-update.js": "/chunks/settings-password.322a8974a9607f8b6cd5.hot-update.js",
"/chunks/settings-password.9112fd25878967288ceb.hot-update.js": "/chunks/settings-password.9112fd25878967288ceb.hot-update.js",
"/chunks/settings-password.34d9ed61b284dd5bcae6.hot-update.js": "/chunks/settings-password.34d9ed61b284dd5bcae6.hot-update.js",
"/chunks/settings-password.d8e59095a18c55e1aa1f.hot-update.js": "/chunks/settings-password.d8e59095a18c55e1aa1f.hot-update.js",
"/chunks/settings-password.30ad5408a6b19e2c9637.hot-update.js": "/chunks/settings-password.30ad5408a6b19e2c9637.hot-update.js",
"/chunks/settings-password.47bdbc7da8db9d689436.hot-update.js": "/chunks/settings-password.47bdbc7da8db9d689436.hot-update.js",
"/chunks/settings-password.14f33bac2bb835482067.hot-update.js": "/chunks/settings-password.14f33bac2bb835482067.hot-update.js",
"/chunks/settings-password.47a524767e992ca1c0dd.hot-update.js": "/chunks/settings-password.47a524767e992ca1c0dd.hot-update.js",
"/chunks/settings-password.674bbdc4f858d50fc6f4.hot-update.js": "/chunks/settings-password.674bbdc4f858d50fc6f4.hot-update.js",
"/chunks/settings-password.cdfa06ffac05acfb3cc2.hot-update.js": "/chunks/settings-password.cdfa06ffac05acfb3cc2.hot-update.js",
"/chunks/settings-password.0295cfaaef557e28bdca.hot-update.js": "/chunks/settings-password.0295cfaaef557e28bdca.hot-update.js",
"/chunks/settings-password.cc03a066786e0b53a6c0.hot-update.js": "/chunks/settings-password.cc03a066786e0b53a6c0.hot-update.js",
"/chunks/settings-password.752515c929bbbf42577f.hot-update.js": "/chunks/settings-password.752515c929bbbf42577f.hot-update.js",
"/chunks/settings-password.23824d17e62bde7ac9aa.hot-update.js": "/chunks/settings-password.23824d17e62bde7ac9aa.hot-update.js",
"/chunks/settings-password.1b99ad28246fb47c9204.hot-update.js": "/chunks/settings-password.1b99ad28246fb47c9204.hot-update.js",
"/chunks/settings-password.6b1e388d9065e7ea44dc.hot-update.js": "/chunks/settings-password.6b1e388d9065e7ea44dc.hot-update.js",
"/chunks/settings-password.dd9e433b6792fa9de4db.hot-update.js": "/chunks/settings-password.dd9e433b6792fa9de4db.hot-update.js",
"/chunks/settings-password.61fcc87d12a50b8325be.hot-update.js": "/chunks/settings-password.61fcc87d12a50b8325be.hot-update.js",
"/chunks/settings-password.d3be9dec67fb73443651.hot-update.js": "/chunks/settings-password.d3be9dec67fb73443651.hot-update.js",
"/chunks/settings-password.cb1c37719a80498b6aad.hot-update.js": "/chunks/settings-password.cb1c37719a80498b6aad.hot-update.js",
"/chunks/settings-password.fc02301ec54dd66d7ce1.hot-update.js": "/chunks/settings-password.fc02301ec54dd66d7ce1.hot-update.js",
"/chunks/settings-password.f83088dc8ee65c75b298.hot-update.js": "/chunks/settings-password.f83088dc8ee65c75b298.hot-update.js",
"/chunks/settings-password.4b40bc87b3e8f44b4b4a.hot-update.js": "/chunks/settings-password.4b40bc87b3e8f44b4b4a.hot-update.js",
"/chunks/settings-password.b474d7f3bad87cf6abe3.hot-update.js": "/chunks/settings-password.b474d7f3bad87cf6abe3.hot-update.js",
"/chunks/settings-password.ea1558ac42f167fe54fe.hot-update.js": "/chunks/settings-password.ea1558ac42f167fe54fe.hot-update.js",
"/chunks/settings-password.8d66818bc28e2d0c23a6.hot-update.js": "/chunks/settings-password.8d66818bc28e2d0c23a6.hot-update.js",
"/chunks/settings-password.61dc33b01200227110a2.hot-update.js": "/chunks/settings-password.61dc33b01200227110a2.hot-update.js",
"/chunks/settings-password.76c862e5cd95028f6091.hot-update.js": "/chunks/settings-password.76c862e5cd95028f6091.hot-update.js",
"/chunks/settings-password.fd0319a6c79fa036c588.hot-update.js": "/chunks/settings-password.fd0319a6c79fa036c588.hot-update.js",
"/chunks/settings-password.2609f126cc0561ae3277.hot-update.js": "/chunks/settings-password.2609f126cc0561ae3277.hot-update.js",
"/chunks/settings-password.2290a3d30db095c98d71.hot-update.js": "/chunks/settings-password.2290a3d30db095c98d71.hot-update.js",
"/chunks/settings-password.8dc6b68bc8d4f5400043.hot-update.js": "/chunks/settings-password.8dc6b68bc8d4f5400043.hot-update.js",
"/chunks/settings-password.d19c5d7aa3fd032ce811.hot-update.js": "/chunks/settings-password.d19c5d7aa3fd032ce811.hot-update.js",
"/chunks/settings-password.f7e34a1c827bf73fa171.hot-update.js": "/chunks/settings-password.f7e34a1c827bf73fa171.hot-update.js",
"/chunks/settings-password.b38881f1af46aee69fb3.hot-update.js": "/chunks/settings-password.b38881f1af46aee69fb3.hot-update.js",
"/chunks/settings-password.cb2d68ad49cc174c7ee4.hot-update.js": "/chunks/settings-password.cb2d68ad49cc174c7ee4.hot-update.js",
"/chunks/settings-password.e1473bd92f7c02a464d4.hot-update.js": "/chunks/settings-password.e1473bd92f7c02a464d4.hot-update.js",
"/chunks/settings-password.d443cc722cd9aa266d41.hot-update.js": "/chunks/settings-password.d443cc722cd9aa266d41.hot-update.js",
"/chunks/settings-password.884defd4f87582a28df9.hot-update.js": "/chunks/settings-password.884defd4f87582a28df9.hot-update.js",
"/chunks/settings-password.273e1568cf727eb64d1a.hot-update.js": "/chunks/settings-password.273e1568cf727eb64d1a.hot-update.js",
"/chunks/settings-password.f8f778137f85bfdf190f.hot-update.js": "/chunks/settings-password.f8f778137f85bfdf190f.hot-update.js",
"/chunks/settings-password.843b5231bf2259e85402.hot-update.js": "/chunks/settings-password.843b5231bf2259e85402.hot-update.js",
"/chunks/settings-password.08549758bc4f7c4edbc5.hot-update.js": "/chunks/settings-password.08549758bc4f7c4edbc5.hot-update.js",
"/chunks/settings-password.817b892e6b5dc1687435.hot-update.js": "/chunks/settings-password.817b892e6b5dc1687435.hot-update.js",
"/chunks/settings-password.78d32678d73ca3685e47.hot-update.js": "/chunks/settings-password.78d32678d73ca3685e47.hot-update.js",
"/chunks/settings-password.380f84f27c11a5639e42.hot-update.js": "/chunks/settings-password.380f84f27c11a5639e42.hot-update.js",
"/chunks/settings.320e5124216ede38ec9b.hot-update.js": "/chunks/settings.320e5124216ede38ec9b.hot-update.js",
"/chunks/settings-password.320e5124216ede38ec9b.hot-update.js": "/chunks/settings-password.320e5124216ede38ec9b.hot-update.js",
"/chunks/settings-password.f89daa96d6f1f77ec630.hot-update.js": "/chunks/settings-password.f89daa96d6f1f77ec630.hot-update.js",
"/chunks/settings-password.63bed1e80b9a8ed36d0d.hot-update.js": "/chunks/settings-password.63bed1e80b9a8ed36d0d.hot-update.js",
"/chunks/admin-account.a39e0a440e3e4362df6c.hot-update.js": "/chunks/admin-account.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.a39e0a440e3e4362df6c.hot-update.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/app-language.a39e0a440e3e4362df6c.hot-update.js": "/chunks/app-language.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/app-setup.a39e0a440e3e4362df6c.hot-update.js": "/chunks/app-setup.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/billings-detail.a39e0a440e3e4362df6c.hot-update.js": "/chunks/billings-detail.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/database.a39e0a440e3e4362df6c.hot-update.js": "/chunks/database.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/environment-setup.a39e0a440e3e4362df6c.hot-update.js": "/chunks/environment-setup.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/installation-disclaimer.a39e0a440e3e4362df6c.hot-update.js": "/chunks/installation-disclaimer.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/page-edit.a39e0a440e3e4362df6c.hot-update.js": "/chunks/page-edit.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/plan-create.a39e0a440e3e4362df6c.hot-update.js": "/chunks/plan-create.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/profile~chunks/settings-password.a39e0a440e3e4362df6c.hot-update.js": "/chunks/profile~chunks/settings-password.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/settings-create-payment-methods.a39e0a440e3e4362df6c.hot-update.js": "/chunks/settings-create-payment-methods.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/settings-invoices.a39e0a440e3e4362df6c.hot-update.js": "/chunks/settings-invoices.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/settings-password.a39e0a440e3e4362df6c.hot-update.js": "/chunks/settings-password.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/settings-payment-methods.a39e0a440e3e4362df6c.hot-update.js": "/chunks/settings-payment-methods.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/settings-storage.a39e0a440e3e4362df6c.hot-update.js": "/chunks/settings-storage.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/settings-subscription.a39e0a440e3e4362df6c.hot-update.js": "/chunks/settings-subscription.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/stripe-credentials.a39e0a440e3e4362df6c.hot-update.js": "/chunks/stripe-credentials.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/subscription-plans.a39e0a440e3e4362df6c.hot-update.js": "/chunks/subscription-plans.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/upgrade-billing.a39e0a440e3e4362df6c.hot-update.js": "/chunks/upgrade-billing.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/user-create.a39e0a440e3e4362df6c.hot-update.js": "/chunks/user-create.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/user-subscription.a39e0a440e3e4362df6c.hot-update.js": "/chunks/user-subscription.a39e0a440e3e4362df6c.hot-update.js",
"/chunks/admin-account.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/admin-account.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/app-language.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/app-language.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/app-setup.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/app-setup.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/billings-detail.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/billings-detail.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/database.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/database.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/environment-setup.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/environment-setup.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/installation-disclaimer.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/installation-disclaimer.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/page-edit.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/page-edit.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/plan-create.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/plan-create.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/profile~chunks/settings-password.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/profile~chunks/settings-password.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/settings-create-payment-methods.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/settings-create-payment-methods.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/settings-invoices.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/settings-invoices.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/settings-payment-methods.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/settings-payment-methods.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/settings-storage.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/settings-storage.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/settings-subscription.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/settings-subscription.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/stripe-credentials.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/stripe-credentials.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/subscription-plans.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/subscription-plans.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/upgrade-billing.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/upgrade-billing.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/user-create.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/user-create.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/user-subscription.99ceb225e1eb4f34a5c7.hot-update.js": "/chunks/user-subscription.99ceb225e1eb4f34a5c7.hot-update.js",
"/chunks/admin-account.fc65a4899f195d5a6476.hot-update.js": "/chunks/admin-account.fc65a4899f195d5a6476.hot-update.js",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.fc65a4899f195d5a6476.hot-update.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.fc65a4899f195d5a6476.hot-update.js",
"/chunks/app-language.fc65a4899f195d5a6476.hot-update.js": "/chunks/app-language.fc65a4899f195d5a6476.hot-update.js",
"/chunks/app-setup.fc65a4899f195d5a6476.hot-update.js": "/chunks/app-setup.fc65a4899f195d5a6476.hot-update.js",
"/chunks/billings-detail.fc65a4899f195d5a6476.hot-update.js": "/chunks/billings-detail.fc65a4899f195d5a6476.hot-update.js",
"/chunks/database.fc65a4899f195d5a6476.hot-update.js": "/chunks/database.fc65a4899f195d5a6476.hot-update.js",
"/chunks/environment-setup.fc65a4899f195d5a6476.hot-update.js": "/chunks/environment-setup.fc65a4899f195d5a6476.hot-update.js",
"/chunks/installation-disclaimer.fc65a4899f195d5a6476.hot-update.js": "/chunks/installation-disclaimer.fc65a4899f195d5a6476.hot-update.js",
"/chunks/page-edit.fc65a4899f195d5a6476.hot-update.js": "/chunks/page-edit.fc65a4899f195d5a6476.hot-update.js",
"/chunks/plan-create.fc65a4899f195d5a6476.hot-update.js": "/chunks/plan-create.fc65a4899f195d5a6476.hot-update.js",
"/chunks/profile~chunks/settings-password.fc65a4899f195d5a6476.hot-update.js": "/chunks/profile~chunks/settings-password.fc65a4899f195d5a6476.hot-update.js",
"/chunks/settings-create-payment-methods.fc65a4899f195d5a6476.hot-update.js": "/chunks/settings-create-payment-methods.fc65a4899f195d5a6476.hot-update.js",
"/chunks/settings-invoices.fc65a4899f195d5a6476.hot-update.js": "/chunks/settings-invoices.fc65a4899f195d5a6476.hot-update.js",
"/chunks/settings-payment-methods.fc65a4899f195d5a6476.hot-update.js": "/chunks/settings-payment-methods.fc65a4899f195d5a6476.hot-update.js",
"/chunks/settings-storage.fc65a4899f195d5a6476.hot-update.js": "/chunks/settings-storage.fc65a4899f195d5a6476.hot-update.js",
"/chunks/settings-subscription.fc65a4899f195d5a6476.hot-update.js": "/chunks/settings-subscription.fc65a4899f195d5a6476.hot-update.js",
"/chunks/stripe-credentials.fc65a4899f195d5a6476.hot-update.js": "/chunks/stripe-credentials.fc65a4899f195d5a6476.hot-update.js",
"/chunks/subscription-plans.fc65a4899f195d5a6476.hot-update.js": "/chunks/subscription-plans.fc65a4899f195d5a6476.hot-update.js",
"/chunks/upgrade-billing.fc65a4899f195d5a6476.hot-update.js": "/chunks/upgrade-billing.fc65a4899f195d5a6476.hot-update.js",
"/chunks/user-create.fc65a4899f195d5a6476.hot-update.js": "/chunks/user-create.fc65a4899f195d5a6476.hot-update.js",
"/chunks/user-subscription.fc65a4899f195d5a6476.hot-update.js": "/chunks/user-subscription.fc65a4899f195d5a6476.hot-update.js",
"/chunks/settings-password.9a95c4220c8d727f4ea2.hot-update.js": "/chunks/settings-password.9a95c4220c8d727f4ea2.hot-update.js",
"/chunks/settings-password.ecd3c3671fb1bd667cfa.hot-update.js": "/chunks/settings-password.ecd3c3671fb1bd667cfa.hot-update.js",
"/js/main.92f70ca3f9447c4cf64b.hot-update.js": "/js/main.92f70ca3f9447c4cf64b.hot-update.js",
"/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~3a8cc00e.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~3a8cc00e.js?id=fce563ddaedb2295ed12",
"/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pag~f0c9b406.js": "/chunks/app-language~chunks/app-settings~chunks/dashboard~chunks/invoices~chunks/page-edit~chunks/pag~f0c9b406.js?id=daeca0a30a4b88a7b521",
"/chunks/settings-password.92f70ca3f9447c4cf64b.hot-update.js": "/chunks/settings-password.92f70ca3f9447c4cf64b.hot-update.js",
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~89a341fe.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~89a341fe.js?id=83c32f5c8626f80c2da6",
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~db2ca71e.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~db2ca71e.js?id=017a08b8a2f6f97357ce",
"/js/main.15ec5b640945d7157ef3.hot-update.js": "/js/main.15ec5b640945d7157ef3.hot-update.js",
"/chunks/profile.15ec5b640945d7157ef3.hot-update.js": "/chunks/profile.15ec5b640945d7157ef3.hot-update.js",
"/chunks/settings.15ec5b640945d7157ef3.hot-update.js": "/chunks/settings.15ec5b640945d7157ef3.hot-update.js",
"/chunks/settings-password.15ec5b640945d7157ef3.hot-update.js": "/chunks/settings-password.15ec5b640945d7157ef3.hot-update.js",
"/chunks/settings-password.1d7cc7a540c6d655a133.hot-update.js": "/chunks/settings-password.1d7cc7a540c6d655a133.hot-update.js",
"/chunks/settings-password.e03839eac067411178ae.hot-update.js": "/chunks/settings-password.e03839eac067411178ae.hot-update.js",
"/chunks/settings-password.6e95478644c48b3da9e5.hot-update.js": "/chunks/settings-password.6e95478644c48b3da9e5.hot-update.js",
"/chunks/settings-password.af17a491cc6a9e9770ca.hot-update.js": "/chunks/settings-password.af17a491cc6a9e9770ca.hot-update.js",
"/chunks/settings-password.c7e99b4673137700ff7d.hot-update.js": "/chunks/settings-password.c7e99b4673137700ff7d.hot-update.js",
"/chunks/settings-password.a1ad87b73322e03760e1.hot-update.js": "/chunks/settings-password.a1ad87b73322e03760e1.hot-update.js",
"/chunks/settings-password.b0506a2ed51f1ae20fe9.hot-update.js": "/chunks/settings-password.b0506a2ed51f1ae20fe9.hot-update.js",
"/chunks/settings-password.0188e6bd0c54da3e5622.hot-update.js": "/chunks/settings-password.0188e6bd0c54da3e5622.hot-update.js",
"/chunks/settings.785b8b09d065036f22c3.hot-update.js": "/chunks/settings.785b8b09d065036f22c3.hot-update.js"
}
@@ -66,6 +66,7 @@ import CopyInput from '@/components/Others/Forms/CopyInput'
import ButtonBase from '@/components/FilesView/ButtonBase'
import InfoBox from '@/components/Others/Forms/InfoBox'
import {required} from 'vee-validate/dist/rules'
import {events} from '@/bus'
import axios from 'axios'
export default {
@@ -104,6 +105,8 @@ export default {
})
.then(response => {
this.token = response.data
events.$emit('reload-personal-access-tokens')
})
.catch(() => this.$isSomethingWrong())
.finally(() => {
@@ -122,4 +125,12 @@ export default {
<style lang="scss" scoped>
@import "@assets/vuefilemanager/_inapp-forms.scss";
@import '@assets/vuefilemanager/_forms';
@media (prefers-color-scheme: dark) {
.info-box {
background: lighten($dark_mode_foreground, 3%);
}
}
</style>
@@ -2,6 +2,8 @@
<div class="form-label">
<edit-2-icon v-if="!icon" size="22" class="icon text-theme" />
<settings-icon v-if="icon === 'settings'" size="22" class="icon text-theme" />
<smartphone-icon v-if="icon === 'smartphone'" size="22" class="icon text-theme" />
<key-icon v-if="icon === 'key'" size="22" class="icon text-theme" />
<b class="label">
<slot></slot>
</b>
@@ -9,14 +11,21 @@
</template>
<script>
import { Edit2Icon, SettingsIcon } from 'vue-feather-icons'
import {
KeyIcon,
Edit2Icon,
SettingsIcon,
SmartphoneIcon,
} from 'vue-feather-icons'
export default {
name: 'FormLabel',
props: ['icon'],
components: {
KeyIcon,
Edit2Icon,
SettingsIcon
SettingsIcon,
SmartphoneIcon,
}
}
</script>
@@ -33,7 +42,7 @@
.icon {
margin-right: 10px;
path, circle {
path, circle, rect, line {
color: inherit;
}
}
+129 -13
View File
@@ -1,15 +1,5 @@
<template>
<PageTab>
<PageTabGroup class="form block-form">
<FormLabel>{{ $t('Personal Access Token') }}</FormLabel>
<InfoBox v-if="tokens.length === 0">
<p>{{ $t("You don't have any created personal access tokens yet.") }}</p>
</InfoBox>
<ButtonBase @click.native="openCreateTokenPopup" type="submit" button-style="theme" class="confirm-form">
{{ $t('Create Token') }}
</ButtonBase>
</PageTabGroup>
<PageTabGroup>
<ValidationObserver ref="password" @submit.prevent="resetPassword" v-slot="{ invalid }" tag="form" class="form block-form">
<FormLabel>{{ $t('user_password.title') }}</FormLabel>
@@ -43,7 +33,7 @@
</ValidationObserver>
</PageTabGroup>
<PageTabGroup class="form block-form">
<FormLabel>{{ $t('2fa.settings.title') }}</FormLabel>
<FormLabel icon="smartphone">{{ $t('2fa.settings.title') }}</FormLabel>
<div class="block-wrapper">
<div class="input-wrapper">
<div class="inline-wrapper">
@@ -81,6 +71,30 @@
</div>
</div>
</div>
</PageTabGroup>
<PageTabGroup class="form block-form">
<FormLabel icon="key">{{ $t('Personal Access Token') }}</FormLabel>
<InfoBox v-if="tokens.length === 0">
<p>{{ $t("You don't have any created personal access tokens yet.") }}</p>
</InfoBox>
<InfoBox v-if="tokens.length > 0">
<ul class="tokens-wrapper">
<li class="token-item" v-for="token in tokens" :key="token.id">
<div class="tokens-details">
<b class="name">{{ token.name}}</b>
<time class="last-used">{{ $t('Last Used') }}: {{ token.last_used_at ? formatDate(token.last_used_at) : $t('Never') }}</time>
</div>
<div @click="confirmDeleteToken(token)" class="tokens-destroyer">
<x-icon size="16" class="close-icon hover-text-theme" />
</div>
</li>
</ul>
</InfoBox>
<ButtonBase @click.native="openCreateTokenPopup" type="submit" button-style="theme" class="confirm-form">
{{ $t('Create Token') }}
</ButtonBase>
</PageTabGroup>
</PageTab>
</template>
@@ -98,6 +112,7 @@
import PageHeader from '@/components/Others/PageHeader'
import ThemeLabel from '@/components/Others/ThemeLabel'
import {required} from 'vee-validate/dist/rules'
import { XIcon } from 'vue-feather-icons'
import {mapGetters} from 'vuex'
import {events} from '@/bus'
import axios from 'axios'
@@ -109,6 +124,7 @@
FormLabel,
PageTab,
InfoBox,
XIcon,
ValidationProvider,
ValidationObserver,
UserImageInput,
@@ -131,6 +147,32 @@
}
},
methods: {
formatDate(date) {
return new Intl.DateTimeFormat('en').format(new Date(date))
},
confirmDeleteToken(token) {
events.$emit('confirm:open', {
title: this.$t('Are you sure you want to delete this token?'),
message: this.$t('Any applications or scripts using this token will no longer be able to access into your account. You cannot undo this action.'),
action: {
id: token.id,
operation: 'delete-personal-access-token'
}
})
},
deleteToken(id) {
axios.delete(`/api/user/token/revoke/${id}`)
.then(() => {
this.tokens = this.tokens.filter(tokenItem => tokenItem.id !== id)
events.$emit('toaster', {
type: 'success',
message: this.$t('Token was successfully deleted!'),
})
})
.catch(() => this.$isSomethingWrong())
},
async resetPassword() {
// Validate fields
@@ -191,6 +233,16 @@
},
created() {
this.getPersonalAccessTokens()
// Delete personal access token
events.$on('action:confirmed', data => {
if (data.operation === 'delete-personal-access-token') {
this.deleteToken(data.id)
}
})
events.$on('reload-personal-access-tokens', () => this.getPersonalAccessTokens())
}
}
</script>
@@ -200,8 +252,59 @@
@import '@assets/vuefilemanager/_mixins';
@import '@assets/vuefilemanager/_forms';
.block-form {
max-width: 100%;
.tokens-wrapper {
margin-top: 0 !important;
.token-item {
display: flex;
justify-content: space-between;
width: 100%;
padding: 10px 0;
border-bottom: 1px solid darken($light_mode_border, 5%);
align-items: center;
&:first-child {
padding-top: 0;
}
&:last-child {
border-bottom: 0 solid transparent;
padding-bottom: 0;
}
}
.tokens-details {
.name {
@include font-size(16);
}
.last-used {
@include font-size(12);
color: $text-muted;
line-height: 1.35;
display: block;
}
}
.tokens-destroyer {
margin-top: 10px;
.close-icon {
opacity: 0.2;
&:hover {
opacity: 1;
line {
color: inherit;
}
}
}
}
.tokens-destroyer {
cursor: pointer;
}
}
@media only screen and (max-width: 960px) {
@@ -227,7 +330,20 @@
}
@media (prefers-color-scheme: dark) {
.tokens-wrapper {
margin-top: 0 !important;
.token-item {
border-color: lighten($dark_mode_foreground, 3%);
}
.tokens-details {
.last-used {
color: $dark_mode_text_secondary;
}
}
}
}
</style>
@@ -17,15 +17,13 @@ class PersonalAccessTokenTest extends TestCase
$user = User::factory(User::class)
->create();
$response = $this
$this
->actingAs($user)
->postJson('/api/user/token/create', [
'name' => 'token',
])
->assertStatus(201);
dd(json_decode($response->content(), true));
$this->assertDatabaseHas('personal_access_tokens', [
'tokenable_id' => $user->id,
'name' => 'token',