https://github.com/endlessm/kolibri-desktop-auth-plugin
Authentication backend that allows an HTTP client to authenticate by providing a desktop user token
https://github.com/endlessm/kolibri-desktop-auth-plugin
Last synced: 4 months ago
JSON representation
Authentication backend that allows an HTTP client to authenticate by providing a desktop user token
- Host: GitHub
- URL: https://github.com/endlessm/kolibri-desktop-auth-plugin
- Owner: endlessm
- Created: 2021-10-11T12:30:15.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-05-28T17:09:06.000Z (about 2 years ago)
- Last Synced: 2025-12-15T11:49:32.105Z (6 months ago)
- Language: Python
- Size: 66.4 KB
- Stars: 1
- Watchers: 5
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# kolibri-desktop-auth-plugin
Authentication backend that allows an HTTP client to authenticate by providing
a desktop user token
# Testing
This is a kolibri plugin, you need to install the python package in the kolibri
python environment using pip and then enable the plugin.
```
.../kolibri $ pip install -e ../kolibri-desktop-auth-plugin
.../kolibri $ kolibri plugin enable kolibri_desktop_auth_plugin
```
To test you can launch the fake user info dbus daemon included in this
repository:
```
./fake-dbus-daemon.py
```
After enabling the fake dbus daemon you can try to autologin in your kolibri
with the plugin opening the following url in your browser:
http://localhost:8000/kolibri_desktop_auth_plugin/login/TOKEN1
You can change the TOKEN at the end of the url above to test with different
user data:
* TOKEN1: adminuser, user with admin rights
* TOKEN2: eosuser, user without admin rights
You can test also with a non existent token that should redirect to the login
page.
It's also possible to redirect after the authentication passing the next url as
a get parameter to the url, for example:
http://localhost:8000/kolibri_desktop_auth_plugin/login/TOKEN1?next=/learn
# Development
Setup the Python environment:
```
pipenv install
```
Setup pre-commit:
```
pipenv run pre-commit install
```
Enter the Python environment for development:
```
pipenv shell
```
# Releasing
## Creating a release
If you are releasing a new version, use `bump-version` with with `major`, `minor`, or `patch`. For example:
```
yarn bump-version patch
```
This creates a new commit and a git tag. Push this to the remote:
```
git push
git push --tags
```
Create a `.whl` file:
```
python setup.py bdist_wheel --universal
```
Finally, upload the `.whl` file to PyPi:
```
twine check -s dist/*
twine upload -s dist/*
```