Go to file
Oliver f97cdef9fc
[PUI] Login / Logout State Fixes (#6368)
* Fix API endpoint URLs

* Adds "authenticated" field to root API endpoint

* Load global status data separately

- Create new global state manager
- Load *after* login
- Prevents auth popup dialog and failure messages

* Add launch config for frontend dev

* Update docs

* Clear token auth if no token is defined

* remove unneeded import

* Revert format of InfoView endpoint

* Remove "authenticated" from InfoView

* Refactor is_staff token check

- Using new get_token_from_request method

* Cleanup code

- return early

* URL fixes

- More fixes for incorrect api calls

* Better tracking of authenticated status

- track an internal flag in apiState

* Prioritize token auth

* Only fetch userState if authenticated

* Force unauthenticated state on first launch

* Updates to login procedure

- Rename doClassicLogin to doBasicLogin (reflecting "basic" auth)
- Add "loggedIn" attribute to sessionState
- Cleanup procedure for securing a token

* Abort early on checkLoginState

- Prevent failed calls to user_me

* Refactoring

- Simpler to just track token state
- No need for separate status tracker
- Works much cleaner this way

* Remove debug messages

* Cleanup unused imports

* Fix unused variable

* Revert timeout to 2000ms

* Rename doClassicLogout -> doLogout

* Improvements for checkLoginState

- Account for the presence of a CSRF session cookie
- If available, use it to fetch a token

* Clear CSRF cookie on logout

- Forces logout from session
- Tested, works well!
- Clean up notifications

* Cleanup setApiDefaults method

* fix global logout (PUI -> CUI)

---------

Co-authored-by: Matthias Mair <code@mjmair.com>
2024-02-02 12:02:55 +11:00
.devcontainer CI updates (#6167) 2024-01-11 00:16:13 +11:00
.devops Add azure pipelines (#4453) 2023-04-03 16:55:27 +10:00
.github Fix for tasks.py - docker (#6380) 2024-02-01 12:25:24 +11:00
.vscode [PUI] Login / Logout State Fixes (#6368) 2024-02-02 12:02:55 +11:00
ci Remove {% jstrans %} tag (#6298) 2024-01-21 22:47:47 +11:00
contrib Remove --no-frontend option from installer (#6111) 2023-12-18 10:44:15 +11:00
deploy fix endline 2022-05-20 13:35:07 +02:00
docker fix(docker): SELinux volume labels (#6330) 2024-01-24 09:01:21 +11:00
docs [PUI] Login / Logout State Fixes (#6368) 2024-02-02 12:02:55 +11:00
images/logo Export large version of the logo 2020-05-12 00:06:26 +10:00
InvenTree [PUI] Login / Logout State Fixes (#6368) 2024-02-02 12:02:55 +11:00
src/frontend [PUI] Login / Logout State Fixes (#6368) 2024-02-02 12:02:55 +11:00
.deepsource.toml deactivated coverage analyzer (#5851) 2023-11-04 08:15:33 +11:00
.eslintrc.yml Fix JS linting workflow (#4915) 2023-05-30 22:55:53 +10:00
.gitattributes fix endline 2022-05-20 13:35:07 +02:00
.gitignore [React] UI Translation Updates (#6257) 2024-01-17 16:29:06 +11:00
.pkgr.yml Notify when packager build fails (#6039) 2023-12-06 09:22:56 +11:00
.pre-commit-config.yaml [CI] Enable python autoformat (#6169) 2024-01-11 11:28:58 +11:00
backportrc.json Add workflow for backporting PRs (#4912) 2023-05-28 18:55:06 +10:00
CONTRIBUTING.md Add whitespace to fix markdown table rendering (#5675) 2023-10-07 15:41:10 +11:00
crowdin.yml P-UI: Adapt translation CI (#5299) 2023-07-21 09:00:37 +10:00
docker-compose.yml Remove container-name:s from Compose file (#5339) 2023-07-25 12:51:37 +10:00
docker.dev.env Plugin auto migrate (#5668) 2023-10-06 11:38:01 +11:00
Dockerfile Fix for tasks.py - docker (#6380) 2024-02-01 12:25:24 +11:00
LICENSE Update LICENSE 2022-02-21 22:31:10 +11:00
package-lock.json [WIP] Mantine datatables (#5218) 2023-07-27 10:10:07 +10:00
package.json Version bump (#5740) 2023-10-18 07:27:28 +11:00
Procfile Installer CLI fix (#6049) 2023-12-08 13:10:44 +11:00
pyproject.toml [CI] docstrings (#6172) 2024-01-11 14:40:07 +11:00
README.md Update README.md (#6270) 2024-01-18 09:37:54 +11:00
readthedocs.yml Update readthedocs (#5565) 2023-09-19 06:20:23 +10:00
RELEASE.md Documentation integration (#4653) 2023-04-22 22:40:29 +10:00
requirements-dev.in Remove support for django-debug-toolbar (#6196) 2024-01-11 07:18:20 +11:00
requirements-dev.txt Remove support for django-debug-toolbar (#6196) 2024-01-11 07:18:20 +11:00
requirements.in [FR] Add tracing support (#6211) 2024-01-18 17:50:05 +11:00
requirements.txt Bump pillow from 10.1.0 to 10.2.0 (#6323) 2024-01-23 10:03:07 +11:00
runtime.txt Add package-based install method (#3743) 2022-10-16 10:14:18 +11:00
SECURITY.md Spelling fix: dates -> days (#3193) 2022-06-14 10:07:48 +10:00
tasks.py Fix for tasks.py - docker (#6380) 2024-02-01 12:25:24 +11:00
yarn.lock Version bump (#5740) 2023-10-18 07:27:28 +11:00

InvenTree logo

InvenTree

Open Source Inventory Management System

License: MITGitHub tag (latest SemVer) CI Documentation Status Docker Build OpenSSF Best Practices Netlify Status DeepSource

Coveralls Crowdin GitHub commit activity Docker Pulls

GitHub Org's stars Twitter Follow Subreddit subscribers

View Demo · Documentation · Report Bug · Request Feature

🌟 About the Project

InvenTree is an open-source Inventory Management System which provides powerful low-level stock control and part tracking. The core of the InvenTree system is a Python/Django database backend which provides an admin interface (web-based) and a REST API for interaction with external interfaces and applications. A powerful plugin system provides support for custom applications and extensions.

Check out our website for more details.

🧭 Roadmap

Want to see what we are working on? Check out the roadmap tag and horizon milestone.

🛠️ Integration

InvenTree is designed to be extensible, and provides multiple options for integration with external applications or addition of custom plugins:

👾 Tech Stack

Server
Database
Client
DevOps

🧰 Deployment / Getting Started

There are several options to deploy InvenTree.

Single line install - read the docs for supported distros and details about the function:

wget -qO install.sh https://get.inventree.org && bash install.sh

Refer to the getting started guide for a full set of installation and setup instructions.

📱 Mobile App

InvenTree is supported by a companion mobile app which allows users access to stock control information and functionality.

👋 Contributing

Contributions are welcomed and encouraged. Please help to make this project even better! Refer to the contribution page.

📜 Translation

Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged.

💸 Sponsor

If you use InvenTree and find it to be useful, please consider sponsoring the project.

💎 Acknowledgements

We would like to acknowledge a few special projects:

Find a full list of used third-party libraries in our documentation.

❤️ Support

This project is supported by the following sponsors:

Martin Löper Oliver Lippert Seth Smith SpaceQuest Ltd Appwrite Cabot Technologies Markus Kasten

With ongoing resources provided by:

Servers by Digital Ocean Deploys by Netlify Translation by Crowdin

⚠️ License

Distributed under the MIT License. See LICENSE.txt for more information.