* change ALLOW_SIGNUP to default to false
* add 1.4.0 tag for OIDC docs
* new notes on security inline with security/policy review
* safer transport for external requests
* fix linter errors
* docs: Tidy up wording/formatting
* fix request errors
* whoops
* fix implementation with std lib
* format
* Remove check on netloc_parts. It only includes URL after any @
---------
Co-authored-by: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Co-authored-by: Brendan <b.oconnell14@gmail.com>
* add route for getting group-only users
* add new api route to frontend
* update shopping list user getAll call
* tests
* fixed bad import
* replace UserOut with UserSummary
* fix params
* extract user registration form into a composable
* added base wizard component
* added partial setup implementation
* removed unused attrs
* added setup bypass
* made setup page more readable
* add checkbox hints to autoform
* added common settings pages and initial submit logic
* bypass setup in demo
* add full name to user registration
* added fullname and pw handling to setup
* fixed wizard indentation
* added post-setup suggestions
* added tests for backend changes
* renamed Wizard to BaseWizard
* lint fixes
* pass hardcoded default password instead of backend nonsense
* removed old test
* fix e2e
* added setup skip to e2e testing for all admin users
---------
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
* initial oidc implementation
* add dynamic scheme
* e2e test setup
* add caching
* fix
* try this
* add libldap-2.5 to runtime dependencies (#2849)
* New translations en-us.json (Norwegian) (#2851)
* New Crowdin updates (#2855)
* New translations en-us.json (Italian)
* New translations en-us.json (Norwegian)
* New translations en-us.json (Portuguese)
* fix
* remove cache
* cache yarn deps
* cache docker image
* cleanup action
* lint
* fix tests
* remove not needed variables
* run code gen
* fix tests
* add docs
* move code into custom scheme
* remove unneeded type
* fix oidc admin
* add more tests
* add better spacing on login page
* create auth providers
* clean up testing stuff
* type fixes
* add OIDC auth method to postgres enum
* add option to bypass login screen and go directly to iDP
* remove check so we can fallback to another auth method oauth fails
* Add provider name to be shown at the login screen
* add new properties to admin about api
* fix spec
* add a prompt to change auth method when changing password
* Create new auth section. Add more info on auth methods
* update docs
* run ruff
* update docs
* format
* docs gen
* formatting
* initialize logger in class
* mypy type fixes
* docs gen
* add models to get proper fields in docs and fix serialization
* validate id token before using it
* only request a mealie token on initial callback
* remove unused method
* fix unit tests
* docs gen
* check for valid idToken before getting token
* add iss to mealie token
* check to see if we already have a mealie token before getting one
* fix lock file
* update authlib
* update lock file
* add remember me environment variable
* add user group setting to allow only certain groups to log in
---------
Co-authored-by: Carter Mintey <cmintey8@gmail.com>
Co-authored-by: Carter <35710697+cmintey@users.noreply.github.com>
* feat: sort by labels in shopping list copy if labels toggled
* fix: call parent validator in shopping list item out (#3227)
* fix: add a unit test for (#3227)
* fixed messy post_validate logic
* feat: label headings in shopping list copy
* feat: blank line for each group in shopping list copy
---------
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
* add default group slug to app info if public
* redirect public user to default group
* added tests
---------
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
* try to match units when brute parsing and no amount is matched
* brute parser: better handle multiple word food items
Also checks the case when a food might have been split in a unit + ingredient
* fix formatting
* add test cases for ingredient parsing that don't start with an amount
* parametrized tests and added ingredient data fixture
* fixed group_id ref in tests
* fixed test inputs
* add extra tests for units as third token
---------
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
* added more test data
* added missing pytest id
* add fk validation to backup restore
* removed bad type imports
* actually apply the invalid fk filter and clean up types
* fix key name
* added log when removing bad rows
* removed unused import
* bumped info to warning
* added test data to (hopefully) expose fk error
* added additional commits during migration
---------
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
* refactor normalized search migration to use dummy default
* changed group slug migration to use raw SQL
* updated comment
* added tests with anonymized backups (currently failing)
* typo
* fixed LDAP enum in test data
* fix for adding label settings across groups
* add migration data fixes
* fix shopping list label settings test
* re-run db init instead of just running alembic migration, to include fixes
* intentionally broke SQLAlchemy GUID handling
* safely convert between GUID types in different databases
* restore original test data after testing backup restores
* added missing group name update to migration