Conversation
|
One more note about passwords: the re-hashed password gets stored in the |
My advice is to update the schema and check the hash length before comparing so we can support both old and new. I think |
|
Thanks. Now there's I couldn't find any usage of the |
|
FYI I dropped the deployed preview environment (https://lmmsio-production-lj6ate.laravel.cloud/lsp) due to inactivity |
|
@osbre sorry about the delay here, I stopped maintaining the website years ago so we're very short on help but you probably notice I do commit from time to time to fix critical issues with the live site. More recently @headquarter8302 has been helping out a lot lately but perhaps between the two of use we just don't have enough experience with Symfony to be able to properly review this, which I think is why it stalled. @liushuyu was very good with these things but for some reasons out of his control he no longer has access to help currently. I made the mistake of never even testing this.
I'll bring this up on our admin channel while I await a reply. Sorry again for the delay and hopefully we can resurrect this effort despite the project's shortcomings. |

In order to make LSP the best it can be, we have to first make the code "maintainable". This PR refactors LSP and adds test coverage to ensure things keep working in the future. Passwords are now properly hashed using Bcrypt. Whenever someone logs-in, we re-hash the password thanks to Symfony's config.
Live environment if you would like to test it yourself: https://lmmsio-production-lj6ate.laravel.cloud/lsp (note this hosting uses ephemeral storage so files won't last long - not a code bug)
If you have a dedicated
.envfor production, setLSP_DATA_DIR="%kernel.project_dir%/tmp"there.I decided to split the previously "all-in-one" route into separate paths, ie /lsp/{id}, but there's now
LegacyRedirectResolverfor compatibility redirects.There's now GitHub Actions config to run tests on every change/other PRs. Feel free to ask any follow-up questions.
Don't forget to run
composer ilocally.