cleanup project

Removed unused files
This commit is contained in:
2026-04-25 08:25:04 +02:00
parent 157c6d49e8
commit c8c7a4d100
1317 changed files with 0 additions and 59571 deletions
-43
View File
@@ -1,43 +0,0 @@
# PR Title
feat(auth): complete registration anti-spam + email quota protection
## Summary
Implements the registration anti-spam and quota hardening spec end-to-end for the email-first onboarding flow.
### What changed
- Added registration anti-spam config and disposable domain config.
- Added progressive Turnstile verification service and wiring.
- Added registration rate limiters and route middleware (`register-ip`, `register-ip-daily`).
- Implemented per-email cooldown and generic anti-enumeration responses.
- Added queued verification sending job with global throttle + quota circuit breaker.
- Added quota and disposable-domain services.
- Hardened verification tokens (hashed storage lookup, expiry, one-time use).
- Added/updated migrations:
- cooldown fields on `users`
- `email_send_events`
- `system_email_quota`
- token column hardening (`token` -> `token_hash`)
- rollout safety migration to ensure `user_verification_tokens` table exists
- Added models: `EmailSendEvent`, `SystemEmailQuota`.
- Added/updated auth registration tests and runbook docs.
## Verification
- `php artisan migrate`
- `php artisan test`
- Focused token hardening tests ✅ (`RegistrationTokenVerificationTest`)
## Notes
- Current local branch: `feat/registration-antispam-complete`
- Local commit: `b239af9`
- Push/PR creation is currently blocked because this repo has no configured git remote and `gh` CLI is not installed.
## Commands to finish PR after remote setup
```bash
git remote add origin <your-repo-url>
git push -u origin feat/registration-antispam-complete
```
Then open PR in your Git host UI using:
- Base: `main` (or your default branch)
- Compare: `feat/registration-antispam-complete`
- Body: copy this file
-8
View File
@@ -1,8 +0,0 @@
# TODO SKINBASE NOVA
## FORUM
- [ ] we need to add in a main search (toolbar) and a search in the forum (search bar in the forum page)
## ARTWORKS
- [ ] http://skinbase26.test/art/69601/testna-slika => we shouldnt display follow for yourself
File diff suppressed because it is too large Load Diff
-1185
View File
File diff suppressed because it is too large Load Diff
-1041
View File
File diff suppressed because it is too large Load Diff
-58
View File
@@ -1,58 +0,0 @@
-- Generated by users:audit-missing-migrated --password-sql-output
-- Generated at: 2026-04-18T08:09:50+00:00
-- Legacy source: legacy.users
-- Target table: users
-- Password hashing mirrors ImportLegacyUsers: password2 ?? password, weak abc123 => random reset hash.
START TRANSACTION;
UPDATE `users` SET `password` = '$2y$12$TGf0noD0Kl1AYNp9ImjJFuv.aN4Z7NY06b5K5TqH0fdFpHvNUeaTu' WHERE `id` = 1;
UPDATE `users` SET `password` = '$2y$12$vXRjNIzHFj1nnuKNCELJMurGPLNYBIoO2tvNalXf7ZSEBhOu1zcp6' WHERE `id` = 2;
UPDATE `users` SET `password` = '$2y$12$YgxYOfJWxfgZFFUWTUco4em9pVRjv5rj89xGB/iFWmjszR0YnNx.6' WHERE `id` = 3;
UPDATE `users` SET `password` = '$2y$12$8dDaKrS9qrbcfbkoe235zO8A.CT1wv6dz7A/pc5N/o.MZwrOpUjWC' WHERE `id` = 4;
UPDATE `users` SET `password` = '$2y$12$OAb/DTvkLPgw.cn1k8LGj.3LhzTI/n44yJJ4l0Ti/p8vJqZelQ.Zm' WHERE `id` = 5;
UPDATE `users` SET `password` = '$2y$12$DLuV3O75L14rM.r4i/Ktdu2qmZoxRnGysuSgUdv/EtKPwawyfkkeq' WHERE `id` = 6;
UPDATE `users` SET `password` = '$2y$12$7UbKAU.fxcV7n/jUj7Zc6eS1WsFzK0Kn9FwkHAn0yocZs/VEQkGYC' WHERE `id` = 7;
UPDATE `users` SET `password` = '$2y$12$I8A15pjiGQXCcZOfFW5a9ezjTId7iiw0t484jz2QNcFGC5gfFmsqu' WHERE `id` = 8;
UPDATE `users` SET `password` = '$2y$12$xQkxk7I9A1xPizcnkIx2CeVs36R3DRPl46I04NOi/jm5VDiJGUWM2' WHERE `id` = 10;
UPDATE `users` SET `password` = '$2y$12$/wO5pFQ8xpoJMRoRNTHOheNW/We74lmb6vXmFc.EVUbszwzzkx7Sa' WHERE `id` = 11;
UPDATE `users` SET `password` = '$2y$12$HWCUB4PvCCx4SCs/YTz0UejlLf26KytuEH5E4agmHvxL3KOcnchOy' WHERE `id` = 12;
UPDATE `users` SET `password` = '$2y$12$Jn/hPh1WqAwa8VfiCbBJ0OCJhx18j1JRpbngJhHUcnImB94usdTwa' WHERE `id` = 13;
UPDATE `users` SET `password` = '$2y$12$6g53VP0jkdYlk3OFXYvkpucmLFeIO768AYoBT8s2Dpjqxnd.nmZbW' WHERE `id` = 15;
UPDATE `users` SET `password` = '$2y$12$qioCPLYkU5XgxvLCvFJYreSx6OuZiznlWRDyubDUokqShhJgbD7Ju' WHERE `id` = 16;
UPDATE `users` SET `password` = '$2y$12$pr16022cTqcXIaKG2QVpaeUKbvPXsTMRsM/XYG.iWc9X9WxnW70fO' WHERE `id` = 17;
UPDATE `users` SET `password` = '$2y$12$ftq7qJvhN2cgX/hE40toS.m6Fjmd3aszkHK9lQXojp2BnOtzBmFDO' WHERE `id` = 18;
UPDATE `users` SET `password` = '$2y$12$V6A3UJbkQ8UQqTh1/o1va.9vd7J6ZjUMZ13aIAxMidKviLucO5ej6' WHERE `id` = 19;
UPDATE `users` SET `password` = '$2y$12$ymvDfXZxC..Gv6wiiPSWPeP7f4pIK5/7qtwwu/KP44f.7LfnapfVq' WHERE `id` = 20;
UPDATE `users` SET `password` = '$2y$12$HWqqyQfjR8A1e/aUL8Pzde7rU2pe23lHeOo.B2y9fHR.PaQK2lIty' WHERE `id` = 21;
UPDATE `users` SET `password` = '$2y$12$CN.abxoJLNZ.NWwEjFDmoeAdc7JXLwGAhk43h3d60wWrd9P4SoMn2' WHERE `id` = 22;
UPDATE `users` SET `password` = '$2y$12$tRz3O/rw82cFu2By0NEIAeAcBMmnRz8idbfelgXxxOay4QpR27/.K' WHERE `id` = 23;
UPDATE `users` SET `password` = '$2y$12$32cQ79R1mg95uB.xL8t1DO7X.ve7A6m55AHEmTEV3BYsBATPGbCyO' WHERE `id` = 24;
UPDATE `users` SET `password` = '$2y$12$K0UKppgYwQYTT2sm15VYCedDIVHQnasY52QpIBf6HmdZWZOYBLRyC' WHERE `id` = 26;
UPDATE `users` SET `password` = '$2y$12$LuL7hRM5tFmhw3M.cvQE9.PB6QoSqCBzSKvVCiuxnA6wrczx0sGb.' WHERE `id` = 27;
UPDATE `users` SET `password` = '$2y$12$mu6PDlF28BxidLDnE.vry.w129pAMBJamaKBcGc87Y0zW9QLE3xOS' WHERE `id` = 28;
UPDATE `users` SET `password` = '$2y$12$LcZZ1Z0f/U.WrIhYwGzPjuVqW2vdiBXoYlWx.hTFiIe3N1Hy6d9a2' WHERE `id` = 31;
UPDATE `users` SET `password` = '$2y$12$q7JvQGFNRoHqwW9u9m6JXOfnwfEdh2kcGc.uoOTUT.ef1.06vCtma' WHERE `id` = 33;
UPDATE `users` SET `password` = '$2y$12$WhrEqLwXcL0yyeQez4K8t.tQ3y4eS/0Ah.44WqeXP5mjNfzyQlJve' WHERE `id` = 34;
UPDATE `users` SET `password` = '$2y$12$OAYX4LH3loRCylduXIHwnOG1tqw70DfgXldxVhkwQh/bXnh0WzbPO' WHERE `id` = 36;
UPDATE `users` SET `password` = '$2y$12$U08nPZ9JbSC8uefVq8Le1eXMJuXRiJZjQjFIbW8UNadOaRXiOKraO' WHERE `id` = 37;
UPDATE `users` SET `password` = '$2y$12$zt/fa/ootm7UNYIQ8NsXFe6b1yivLsEbgiHsRlvPBXV9/sdqJj6SC' WHERE `id` = 39;
UPDATE `users` SET `password` = '$2y$12$4PukQmK3OUl08DH0rEtZ0uYTXyCBlSzjJ1/oTTYxenas4SS/ob2aC' WHERE `id` = 40;
UPDATE `users` SET `password` = '$2y$12$VvH1Mdlx5Bi9W1bk0TI7J.Z919AgFStPcm9UbRi0Tq0JhXLvUfxSG' WHERE `id` = 44;
UPDATE `users` SET `password` = '$2y$12$BrwnjXKApKtgbAzrsUmXg.glsf8/AXPlrYrFmxe3jHbKClyxfDQ8y' WHERE `id` = 48;
UPDATE `users` SET `password` = '$2y$12$BJZHB01p7JOxhUdFBLFcr.MLXDrVU6zQho2LJuoA4JqESt0Ac1d9.' WHERE `id` = 49;
UPDATE `users` SET `password` = '$2y$12$rn824EjSJf0HOUrR4FEFJeeu5dXN1nQ8jVtgyLeVSMQsU29IQuj6m' WHERE `id` = 50;
UPDATE `users` SET `password` = '$2y$12$RnpeFLIMW6VgzCg2.eyFYOTGpUd6ICiXp0XdISRw/WbrsU0N5johK' WHERE `id` = 51;
UPDATE `users` SET `password` = '$2y$12$IuVLz4tQqEzxqMMbfjsAU.rUZFk.8ODC1T2L4Id9gcepaDGBwiFxG' WHERE `id` = 53;
UPDATE `users` SET `password` = '$2y$12$LolCkWFKfUcUW.DjsI9X1O/xE1erc5TIV//DZTrd44pF1JTANA0X2' WHERE `id` = 54;
UPDATE `users` SET `password` = '$2y$12$vFb4TZdBAVM9pzbYq.V4JeyedxeR4h0/PoplThxA19UyN2t0nwCim' WHERE `id` = 55;
UPDATE `users` SET `password` = '$2y$12$Lq0zm.c9Fgik9mAEkc7QsOLt/N.szxJGmL9U2q3XOz.1qMQ.OPpfu' WHERE `id` = 57;
UPDATE `users` SET `password` = '$2y$12$BwpXKM2sr7EfEmvbk/HWpemVtfkDcZNDjKsqPLCCjMMoqAx2nyZgy' WHERE `id` = 58;
UPDATE `users` SET `password` = '$2y$12$1XHbK7GHAFiWVwL/W3QN..PNHwRX7j6Gm14KCIr0iyAOK4DqUNlIK' WHERE `id` = 62;
UPDATE `users` SET `password` = '$2y$12$KY.KwsOwpq3xfjnsmLT1QO3Ua6RyKgp4umE9n5S6HbQMllPomJxQi' WHERE `id` = 64;
UPDATE `users` SET `password` = '$2y$12$rvOdDdHEElbF5wUB5v9cqeJKMLxO4bjO1FLfjTRr/ktyHu2/dVi1i' WHERE `id` = 65;
UPDATE `users` SET `password` = '$2y$12$p0SjaSFSZTCKxe5Kzi02uORWCFtClrs/pEGmHr6Jt9z2hLUADe9Be' WHERE `id` = 66;
UPDATE `users` SET `password` = '$2y$12$aAymE2rJMwfQeO.pD8JKiONkPXRN9v8kJt7JUGU9MHoWS4Ct2/YyW' WHERE `id` = 68;
UPDATE `users` SET `password` = '$2y$12$5bCWLHyGkUPVZ5A.zj1nBui.HzzasdX1FA325oUQeBHCpL02rp1Aa' WHERE `id` = 70;
UPDATE `users` SET `password` = '$2y$12$4RmG9H97URLaFcA4LihTYOS8XoJKjMgzqN8MSX2cMumQnVAha7VN.' WHERE `id` = 76;
UPDATE `users` SET `password` = '$2y$12$i3uFMgD.0LJv/2stIQ9sve4vN26sFUTHHf8Kj6KkvPmxH1GRnkRN.' WHERE `id` = 77;
UPDATE `users` SET `password` = '$2y$12$wpzfrfVN1fDWQwKHT5LcmegaoxYtoxOdL7klV2DJS4Zdz4aMLx8Nu' WHERE `id` = 80;
UPDATE `users` SET `password` = '$2y$12$RFnV4tuQoZI87UJArBGgt.2M9Mvt6XmR1R.eDwzEgRWUokER.At8u' WHERE `id` = 81;
Binary file not shown.

Before

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 407 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 502 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 413 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 389 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 557 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 491 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 415 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 527 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 432 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 389 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 459 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 571 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 516 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 333 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 539 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 432 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 504 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 411 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 565 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 414 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 328 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 516 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 346 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 414 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 557 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 539 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

Some files were not shown because too many files have changed in this diff Show More