Beispiel #1
0
import re

from codado import fromdir, enum

from pymongo.uri_parser import parse_uri


fromNoms = fromdir(__file__, "..")


DBHost = enum(noms={"host": "mongodb://localhost/noms"}, nomsTest={"host": "mongomock://localhost/noms-test"})

# mongomock is broken, we need to maintain our own connection aliases
# See https://github.com/vmalloc/mongomock/issues/233 - we must parse
# host ourselves and pass in db=, for the benefit of mongomock.
DBAlias = enum.fromkeys(DBHost.keys())


def _parseHosts():
    """
    Build a dict of all of the connections defined by DBHost

    Doesn't register a default connection yet.
    """
    for k, v in DBHost.items():
        parts = parse_uri(v["host"].replace("mongomock", "mongodb"))  # hack for a parse_uri restriction
        DBHost[k]["db"] = parts["database"]


_parseHosts()
Beispiel #2
0
fromNoms = fromdir(__file__, '..')


NOMS_DB_HOST = os.environ.get('NOMS_DB_HOST', 'localhost')


DBHost = enum(
        noms={'host': 'mongodb://%s/noms' % NOMS_DB_HOST},
        nomsTest={'host': 'mongomock://localhost/noms-test'},
        )

# mongomock is broken, we need to maintain our own connection aliases
# See https://github.com/vmalloc/mongomock/issues/233 - we must parse
# host ourselves and pass in db=, for the benefit of mongomock.
DBAlias = enum.fromkeys(DBHost.keys())


def _parseHosts():
    """
    Build a dict of all of the connections defined by DBHost

    Doesn't register a default connection yet.
    """
    for k, v in DBHost.items():
        parts = parse_uri(v['host'].replace('mongomock', 'mongodb')) # hack for a parse_uri restriction
        DBHost[k]['db'] = parts['database']

_parseHosts()

Beispiel #3
0
"""
Authentication and users
"""

from mongoengine import fields

from codado import enum

from noms.rendering import RenderableDocument


Roles = enum.fromkeys(['user', 'superuser'])


class User(RenderableDocument):
    """
    A person with a login account (or the ANONYMOUS user)
    """
    email = fields.StringField(require=True, unique=True)
    passwordHash = fields.StringField()
    roles = fields.ListField(fields.StringField(choices=Roles.keys()))
    givenName = fields.StringField()
    familyName = fields.StringField()

    meta = {'indexes': [
        'email',
        ]}

    @classmethod
    def fromSSO(cls, ssoData):
        """
Beispiel #4
0
from itsdangerous import (
        TimedJSONWebSignatureSerializer as Serializer, 
        BadSignature, 
        SignatureExpired)


from codado import enum

from noms.rendering import RenderableDocument
from noms.interface import ICurrentUser
from noms import secret


Roles = enum.fromkeys([
    'anonymous',
    'user',
    'superuser',
    'localapi',
    ])


class User(RenderableDocument):
    """
    A person with a login account (or the Anonymous user)
    """
    email = fields.StringField(require=True, unique=True)
    passwordHash = fields.StringField()
    roles = fields.ListField(fields.StringField(choices=Roles.keys()))
    givenName = fields.StringField()
    familyName = fields.StringField()

    meta = {'indexes': [