I was struggling with getting the model to access my schema helper and,
I'm gonna be real with you chief, I don't even know how I managed to fix
it. But it works... I guess? lmao
- Remaining camelCase variables in `lib/CharmBoard/Controller/Register.pm` have been swapped to snake_case
- Dev/prod environment check is now case insensitive
- Change `pass_crypt => scheme` in conf to an array
a bunch of POD documentation was addded to various .pm files
`CharmBoard::Controller::Auth` has been split into
`CharmBoard::Controller::Register`, `CharmBoard::Controller::Login`,
and `CharmBoard::Controller:Logout` (that last one is new, too!)
`Main.pm` has been renamed to `Index.pm` like it was in the beginning
the config value `board_name` now works
`CharmBoard::Schema` namespaces were changed (`ResultSource` is now
`Source`, `ResultSet` is now `Set`)
templates were mildly reorganized
almost switched from EPL to HAML. decided I really shouldn't because I
utterly despise anything whitespace sensitive, so it doesn't matter how
compact HAML is in comparison!
both `register_do` and `login_do` in `CharmBoard::Controller::Auth` now
use two try/catch blocks instead of heavily nested if/elsif/else blocks.
I also reverted the change where I removed all of the
`use experimental 'feature-name'` declarations because, while
Mojolicious still whines about experimental features being experimental,
if you don't have `use experimental 'try'` set somewhere, then it just
does not work, unlike smartmatch which will work either way but cause
perl to get mad at you. plus, it feels weird not having those there
anyways!
`login_do` now uses a try/catch control structure instead of the
horrifying nested if/else control structure it used before. I'd think a
failed login attempt counts as an exception, so it should be fair to use
it here?
I have also removed the one session per user limit for now. I'm going to
replace it with a manual session manager in user settings later
hopefully, and some sort of periodically run script that deletes any
expired sessions from the DB, plus maybe other places where they get
deleted.
any `use experimental 'name'` instances have been removed too since
Mojolicious complains about your use of experimental features no matter
what anyways!
global changes:
- config now uses snake_case instead of camelCase for config entry
names
- closing brackets/braces never occur on their own line
- there are almost never spaces inside brackets/braces before and
after the actual content
- I also removed a bunch of linebreaks I really shouldn't have because
it just ended up worsening readability, so I'm going to put them
back tomorrow lol
`lib/CharmBoard.pm` :
- removed PostgreSQL from the database driver detector, I just wanna
stick with SQLite and MySQL initially since I'm only really familiar
with those
- detect dev environment (from conf file setting) and only shut
caching off in that situation
- removed the default layout config option
`lib/CharmBoard/Crypt/Password.pm`
- renamed subroutines from snake_case to whateverthisiscalled
- changed what format `passgen` outputs salts and hashes in
- changed size and factor for reasons I honestly don't remember at
this point. I should probably recalibrate that properly tomorrow
- added `passchk` subroutine for verifying of passwords on the login
screen
- nice and helpful comments
`lib/CharmBoard/Crypt/Seasoning.pm`
- this is what used to be `tools/pepper.pl`. it's not currently used
for anything but it will be used for pepper generation during setup
if CharmBoard ever gets to that point. also might use it for
generating salts actually
`lib/CharmBoard/Controller/Auth.pm`
- realized I had the salt and hash variable assignments the wrong way
'round like an idiot, so I fixed that
- added part of signup (password auth)
- also lots of hopefully-helpful comments?
`lib/CharmBoard/Schema/*.pm`
- added more params for each column
`lib/CharmBoard/Schema/Session.pm`
- added `is_ip_bound` and `bound_ip` columns
`database.sql`
- as for stuff not mentioned in the schema module changes, I added
`ON CONFLICT` behavior (it's all `ABORT`, which rolls back the
entire transaction)
i'm tired i'm spenfing too much time either reading about mojolicious/perl or actually programming in them (usually the former atm) i need to chillax and play some videogames