auth.py 635 Bytes
from ziggurat_foundations.models.services.user import UserService
from opensipkd.jsonrpc.exc import JsonRpcInvalidLogin
from opensipkd.jsonrpc.auth import Auth as BaseAuth


class Auth(BaseAuth):
    def __init__(self, request):
        BaseAuth.__init__(self, request.environ)
        self.validate_signature()

    def validate_signature(self):
        user = UserService.get(self.env['HTTP_USERID'])
        if not (user and user.api_key):
            raise JsonRpcInvalidLogin()
        BaseAuth.validate_signature(self, user.api_key)
        return user


def generate_api_key():
    return UserService.generate_random_string(64)