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

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

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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