Some Functions to manage a User Database and do stuff with it!
Project description
pyusermanager
a user management libary for web services or other stuff
1. Info
This Project is aimed to simplify building apis which require User authentification
1.2 Table of Contents
2. Features
- login
- registration
- Token generation
- Token Verification
- Different Token Types
- Auth_Token -> Used for user verification
- ResetCode -> Used to auth password Resets
- ActivationCode -> Used to activate user Accounts
- Custom Exceptions
- MissingUserExceptions
- NotInitedException
- AlreadyExistsException
- TokenMissingException
3. Plans for the Future
-
Refactor db_functions.py (v.2.0.0) - Custom Return Object instead of dicts
-
fix Code Smells -
implement token verification for other tokens than auth_token - implement propper logging (v.2.1.0)
- writing Tests
- Token Module
- Config Module
- Perm Module
- UserFunctions
- Login Functions
4. Documentation Status
4.1 General
-
Created readthedocs page - How to Install
- How to Use
4.2 Modules
- auth_type_enum
- custom_exceptions
- data_classes
- ldap_stuff
- login_class
- perms_class
- user_funcs
- Token
- token_base_class
- token_auth_class
- token_reset_class
- token_activation_class
- Config
- config_base_class
- config_ad_class
- config_db_class
- config_general_class
5. Quickstart
from pyusermanager import *
from pyusermanager.Config import *
from pyusermanager.Config.db_providers import *
import pyusermanager.Token as Token
# Create DB-Config
db_cfg = MYSQL_Provider(
host="127.0.0.1", port=3306, user="test", passwd="test1234", db="users"
)
# setup general config
cfg = General_Config(auto_activate_accounts=False)
# connect to db
cfg.bind(db_cfg)
#creating user
try:
user(cfg, "testuser").create("password")
except PyUserExceptions.AlreadyExistsException:
print("user already exists")
#if login was successfull we want to create an auth token and print it
if login(cfg,'testuser','password'):
token = Token.Auth(cfg,username="testuser")
token.create("127.0.0.1",valid_days=1)
print(f"Token: {token.token}")
testtoken = Token.Auth(cfg,token=token.token)
print(f"trying to verify Token: {testtoken.token}\nreturnes: {testtoken.verify('127.0.0.1')}")
#creating a perm and assigning it to a user
testperm = Perm(cfg,"testperm")
testperm.create()
print(f"tyring to assign it to testuser: {testperm.assign_to_user('testuser')}")
more examples can be found in howtouse.py
6. Changelog
v2.0.7 (git) (pypi)
Changed
- added AuthProvider Class so we have an app wide possibility to check groups and other stuff
v2.0.6 (git) (pypi)
Changed
- avatar folder is now part of the general config
v2.0.5 (git) (pypi)
Changed
- added DBProviders enum to pyusermanager.Config.db_providers so we can get the fitting db provider by the specified name
- fixed some typos in the readme
- fixed some typos in howtouse.py
v2.0.4 (git) (pypi)
Changed
- an ad user will now get ad groups on every login (will remove groups set by hand!)
- new exception ADLoginProhibited which will be raised if an already existing ad user tries to login after ad logins where disabled
v2.0.3 (git) (pypi)
Changed
- fixed bug in activation token creation
- you can now set the lifetime of a token with set_lifetime on the token object
v2.0.2 (git) (pypi)
Changed
- auth_token now updates last_login attribute in database
v2.0.1 (git) (pypi)
Changed
- alot of rewrites
- please look at the howtouse.py and documentation!
v1.0.5 (git) (pypi)
Changed
- get_extended_info not takes an extra optional arg (include_email) if its not None it will return the user email in the user_dict
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyusermanager-2.0.7.tar.gz
(17.0 kB
view details)
Built Distribution
File details
Details for the file pyusermanager-2.0.7.tar.gz
.
File metadata
- Download URL: pyusermanager-2.0.7.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2bdc802da3b0358fbe1fc72d0c86e0c6fce0ad19c9fc23db9f47adc8da84f87 |
|
MD5 | 765910eb93b3608f298b6f3073fa35eb |
|
BLAKE2b-256 | 22e1701e17bd9690a55cb6b8fde70cb2b46da3f7a8102d5bc62fa78b0cb97a6c |
File details
Details for the file pyusermanager-2.0.7-py3-none-any.whl
.
File metadata
- Download URL: pyusermanager-2.0.7-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8c20dd29747cefd3f644b622e631e26ad9f837c20e5667647a01df18f9a846a |
|
MD5 | 765b18db65d5c7a2adb3a1c1a2480e0f |
|
BLAKE2b-256 | 77582435ebb21ccdc7dcf50642f5aff00a917b01fe3eed5112ccc7022cd20c43 |