Commit graph

81 commits

Author SHA1 Message Date
Vlad Stan
c9093715b7
[FEAT] Auth, Login, OAuth, create account with username and password #1653 (#2092)
no more superuser url!
delete cookie on logout
add usr login feature
fix node management
* Cleaned up login form
* CreateUser
* information leak
* cleaner parsing usr from url
* rename decorators
* login secret
* fix: add back `superuser` command
* chore: remove `fastapi_login`
* fix: extract `token` from cookie
* chore: prepare to extract user
* feat: check user
* chore: code clean-up
* feat: happy flow working
* fix: usr only login
* fix: user already logged in
* feat: check user in URL
* fix: verify password at DB level
* fix: do not show `Login` controls if user already logged in
* fix: separate login endpoints
* fix: remove `usr` param
* chore: update error message
* refactor: register method
* feat: logout
* chore: move comments
* fix: remove user auth check from API
* fix: user check unnecessary
* fix: redirect after logout
* chore: remove garbage files
* refactor: simplify constructor call
* fix: hide user icon if not authorized
* refactor: rename auth env vars
* chore: code clean-up
* fix: add types for `python-jose`
* fix: add types for `passlib`
* fix: return type
* feat: set default value for `auth_secret_key` to hash of super user
* fix: default value
* feat: rework login page
* feat: ui polishing
* feat: google auth
* feat: add google auth
* chore: remove `authlib` dependency
* refactor: extract `_handle_sso_login` method
* refactor: convert methods to `properties`
* refactor: rename: `user_api` to `auth_api`
* feat: store user info from SSO
* chore: re-arange the buttons
* feat: conditional rendering of login options
* feat: correctly render buttons
* fix: re-add `Claim Bitcoin` from the main page
* fix: create wallet must send new user
* fix:  no `username-password` auth method
* refactor: rename auth method
* fix: do not force API level UUID4 validation
* feat: add validation for username
* feat: add account page
* feat: update account
* feat: add `has_password` for user
* fix: email not editable
* feat: validate email for existing account
* fix: register check
* feat: reset password
* chore: code clean-up
* feat: handle token expired
* fix: only redirect if `text/html`
* refactor: remove `OAuth2PasswordRequestForm`
* chore: remove `python-multipart` dependency
* fix: handle no headers for exception
* feat: add back button on error screen
* feat: show user profile image
* fix: check account creation permissions
* fix: auth for internal api call
* chore: add some docs
* chore: code clean-up
* fix: rebase stuff
* fix: default value types
* refactor: customize error messages
* fix: move types libs to dev dependencies
* doc: specify the `Authorization callback URL`
* fix: pass missing superuser id in node ui test
* fix: keep usr param on wallet redirect
removing usr param causes an issue if the browser doesnt yet have an access token.
* fix: do not redirect if `wal` query param not present
* fix: add nativeBuildInputs and buildInputs overrides to flake.nix
* bump fastapi-sso to 0.9.0 which fixes some security issues
* refactor: move the `lnbits_admin_extensions` to decorators
* chore: bring package config from `dev`
* chore: re-add dependencies
* chore: re-add cev dependencies
* chore: re-add mypy ignores
* feat: i18n
* refactor: move admin ext check to decorator (fix after rebase)
* fix: label mapping
* fix: re-fetch user after first wallet was created
* fix: unlikely case that `user` is not found
* refactor translations (move '*' to code)
* reorganize deps in pyproject.toml, add comment
* update flake.lock and simplify flake.nix after upstreaming
overrides for fastapi-sso, types-passlib, types-pyasn1, types-python-jose
were upstreamed in https://github.com/nix-community/poetry2nix/pull/1463
* fix: more relaxed email verification (by @prusnak)
* fix: remove `\b` (boundaries) since we re using `fullmatch`
* chore: `make bundle`

---------

Co-authored-by: dni  <office@dnilabs.com>
Co-authored-by: Arc <ben@arc.wales>
Co-authored-by: jackstar12 <jkranawetter05@gmail.com>
Co-authored-by: Pavol Rusnak <pavol@rusnak.io>
2023-12-12 11:38:19 +01:00
Tiago Vasconcelos
576e20d0cd
Add deleted flag wallet (#1826)
* add deleted flag on wallets

set deleted on delete wallet

2 twelves

format

fail on create invoice

make deleted check on SQL query

nazi flake8

add_test

boom... it works and passes!!

* add app fixture

vlad's recommendations

add deleted

* Add deleted flag to Wallet

* restore crud

* do not check for wallet in services.py

* add deleted flag on wallets

set deleted on delete wallet

2 twelves

format

fail on create invoice

make deleted check on SQL query

nazi flake8

add_test

boom... it works and passes!!

* add app fixture

vlad's recommendations

* add deleted

* error checks

---------

Co-authored-by: callebtc <93376500+callebtc@users.noreply.github.com>
2023-09-11 14:06:31 +01:00
dni ⚡
4e6f229db2
[CHORE] string formatting default length 88 (#1887)
* [CHORE] string formatting default length 88

uses blacks default off 88 and enabled autostringformatting

* formatting

* nitpicks jackstar

fix
2023-08-24 10:26:09 +01:00
dni ⚡
c4da1dfdce
[REFACTOR] WalletType into enum (#1888)
* [REFACTOR] WalletType into enum

- move wallettype models from decorators.py into models.py
- use enum instead of int
- use HTTPStatus for consistency

* Update lnbits/core/models.py

Co-authored-by: jackstar12 <62219658+jackstar12@users.noreply.github.com>

* use dataclass

---------

Co-authored-by: jackstar12 <62219658+jackstar12@users.noreply.github.com>
2023-08-23 12:41:22 +02:00
dni ⚡
355806608b
[CHORE] E722 bare exception fix (#1871)
* [CHORE] E722 bare exception fix
remove all bare exceptions from codebase and change it in `.flake8`
2023-08-16 12:17:54 +02:00
Tiago Vasconcelos
758a4ecaf6
Fix user label across lnbits (#1771)
* check for super user on get_user
* remove unecessary assingments
2023-06-20 08:41:57 +02:00
jackstar12
c0f66989cb
Serverside Pagination for payments (#1613)
* initial backend support

* implement payments pagination on frontend

* implement search for payments api

* fix pyright issues

* sqlite support for searching

* backwards compatability

* formatting, small fixes

* small optimization

* fix sorting issue, add error handling

* GET payments test

* filter by dates, use List instead of list

* fix sqlite

* update bundle

* test old payments endpoint aswell

* refactor for easier review

* optimise test

* revert unnecessary change

---------

Co-authored-by: dni  <office@dnilabs.com>
2023-05-09 09:18:53 +01:00
Pavol Rusnak
02306148df
fix pyright lnbits
Co-authored-by: dni  <office@dnilabs.com>
2023-04-04 07:34:17 +02:00
dni ⚡
8ce84ce592
FEAT: Filters for GET requests, add it to GET /payments (#1557)
* feat filters, add them to GET payments

* add limit and offset to filters (#1563)

* add limit and offset to filters
* move filters example to parse_filters doc string

* black

* add openapi docs

* remove example commentC

* improve typing and make nested filter possible in openapi

* typo in fn name

* readd Type

---------

Co-authored-by: jackstar12 <62219658+jackstar12@users.noreply.github.com>
Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>
2023-04-03 14:55:49 +02:00
Pavol Rusnak
eba7319808
fix flake8 E713 (test-for-membership) 2023-01-30 11:46:44 +00:00
dni ⚡
b1d1cc6de3 removing type: ignore from Query, Depends, Body and import them correctly 2023-01-02 11:56:28 +01:00
callebtc
a0429660f4 fix: remove require_admin_user 2022-12-27 14:18:00 +01:00
callebtc
a243e4e320 fix: update to latest changes 2022-12-26 12:12:27 +01:00
callebtc
feb61a3fa7 merge 2022-12-26 12:04:07 +01:00
dni ⚡
1be460aec3 fix user not exist bug in frontend 2022-12-23 11:53:45 +01:00
dni ⚡
1f75d5fd41 fix it up 2022-12-22 17:58:49 +01:00
dni ⚡
7c96a12a3c fix issue with allowed_users and admin/superuser 2022-12-22 17:48:46 +01:00
dni ⚡
ab49b7740c add superuser decorator, fix restart route and mypy issue 2022-12-12 09:45:12 +01:00
callebtc
5f4fa61310 refactor:depend_admin_user 2022-12-07 14:56:45 +01:00
dni ⚡
c0fc53028b reformatting 2022-12-07 11:02:23 +01:00
Tiago Vasconcelos
02e82a8fdf fix add user and admins-WIP remove super user id from API 2022-12-06 16:08:21 +00:00
dni ⚡
f2da8fc277 fix another super_user permission issue 2022-12-06 13:04:27 +01:00
dni ⚡
aafb2335a1 fix check_admin issue, wrong condition 2022-12-06 12:45:26 +01:00
dni ⚡
c56a31e6f5 add superuser and refactor check_admin function, also put it into satspay 2022-12-05 20:41:23 +01:00
dni ⚡
1ffc8c3498 use new settings and remove unused amdin extension stuff 2022-10-05 13:04:36 +02:00
dni ⚡
850ed85311 fix ADMIN_UI=false errors 2022-10-05 13:01:59 +02:00
dni ⚡
e4c310d197 format 2022-10-05 13:01:59 +02:00
ben
a932f8a3d0 reverted other try 2022-10-05 13:01:59 +02:00
ben
55a4403028 Reverted try 2022-10-05 13:01:59 +02:00
ben
d8a13ed29d Added couple more tries 2022-10-05 13:01:59 +02:00
Tiago vasconcelos
5a3ad81c31 allow user settings without restart 2022-10-05 13:01:59 +02:00
calle
c5cc65a736
Fix/admin extension exception (#984)
* check if wallet exists

* check wallet existence in key check

* return FORBIDDEN for LNBITS_ADMIN_USERS
2022-09-20 15:34:03 +03:00
calle
1660b9dcf1
Revert "Revert "API key check: assert that wallet exists (#961)" (#962)" (#963)
This reverts commit 57fffa0c7f.
2022-09-12 18:49:57 +03:00
calle
57fffa0c7f
Revert "API key check: assert that wallet exists (#961)" (#962)
This reverts commit 0930fca7ec.
2022-09-12 18:41:27 +03:00
calle
0930fca7ec
API key check: assert that wallet exists (#961)
* check if wallet exists

* check wallet existence in key check
2022-09-12 18:39:53 +03:00
dni ⚡
88ec440ea1
another testcase the fails similar to #847 (#892)
* another testcase the fails similar to #847

* proper fix

* revert to statuscode 401 and code improvements @calle

Co-authored-by: dni <dni.khr@gmail.com>
2022-08-16 17:01:05 +02:00
dni ⚡
d989441587
added test for issue #847 and fixed it! (#848)
* added test for empty post data, for issue #847

* black

* fixed the failing testcase

* Update lnbits/decorators.py

Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>

Co-authored-by: dni <dni.khr@gmail.com>
Co-authored-by: calle <93376500+callebtc@users.noreply.github.com>
2022-08-13 14:47:29 +02:00
dni
00dba54ac8 remove FIXME add couple of ignores 2022-07-26 12:21:21 +02:00
dni
e63c4c9fa2 revert self.wallet change 2022-07-26 12:07:16 +02:00
dni
5779243d3e blacked 2022-07-25 13:30:45 +02:00
dni
a7c10dde4a fixup types 2022-07-25 13:13:50 +02:00
dni
df00a018f0 added FIXME tags and fix WalletTypeInfo 2022-07-25 12:05:16 +02:00
dni
4dfa0873e5 fix isort check 2022-07-25 12:03:06 +02:00
dni
0e393111de fix up decorators for tests 2022-07-25 12:03:06 +02:00
dni
a80fd5de7a black formating 2022-07-25 12:03:06 +02:00
dni
f677777f07 fully fix decorators, thanks calle 2022-07-25 12:03:06 +02:00
dni
56560fca02 mypy fixes for generic.py, decurators.py, eclair.py 2022-07-25 12:03:06 +02:00
calle
f4e7d62ca3
make format everything (#743) 2022-07-16 14:23:03 +02:00
callebtc
f8400512f7 black formating 2022-06-01 14:53:05 +02:00
Ben Arc
30a0d6336b removed print 2022-03-08 22:29:13 +00:00