# Path: modules/auth/Priv.py



from default_imports import *
from modules.auth.Priv import Priv
from pymongo.collection import Collection
import hashlib, uuid



Username = NewType('Username', str)
UserID = NewType('UserID', str)
Password = NewType('Password', str)
Salt = NewType('Salt', str)

class User(NamedTuple('User', [
        ('id', UserID), 
        ('name', Username),
        ('password', Password),
        ('salt', Salt),
        ('privs', List[Priv])
    ])):
    @staticmethod

# Path: modules/auth/Priv.py



# Path: modules/auth/User.py
from default_imports import *
from modules.auth.Priv import Priv
from pymongo.collection import Collection
import hashlib, uuid




Username = NewType('Username', str)
UserID = NewType('UserID', str)
Password = NewType('Password', str)
Salt = NewType('Salt', str)

class User(NamedTuple('User', [
        ('id', UserID), 
        ('name', Username),
        ('password', Password),
        ('salt', Salt),
        ('privs', List[Priv])
    ])):
    @staticmethod

    def new(name: Username, password: Password, privs: List[Priv] = []):