Пример #1
0
    def reload(self, environ):
        """
        Reloads authenticated user from db.
        """
        environ['authenticated_user'] = None
 
        if not 'REMOTE_USER' in environ:
            return

        dbFacade = DbFacade(model_instance().session, model_instance())

        authenticated_user = dbFacade.authenticatedUsersDao.find_by_username(environ['REMOTE_USER'])
        if authenticated_user:
            environ['authenticated_user'] = authenticated_user
Пример #2
0
    def validate_python(self, value, state):
        model = model_instance()
        db = model.session

        user = db.query(model.AuthenticatedUser).filter_by(email=value).first()
        if not user:
            raise formencode.Invalid(self.message("unknown", state), value, state)
Пример #3
0
    def validate_python(self, value, state):
        model = model_instance()
        db = model.session

        user = db.query(model.AuthenticatedUser).filter_by(username=value).first()
        if user:
            raise formencode.Invalid(self.message("alreadyTaken", state), value, state)
Пример #4
0
    def default(self, obj):
        model = model_instance()
        if isinstance(obj, model.AuthenticatedUser):
            return {"uid": obj.uid, "username": obj.username, "email": obj.email}

        if isinstance(obj, model.Balance):
            return {
                "uid": obj.uid,
                "name": obj.name,
                "users": [{"user_uid": user.user_uid, "writable": user.writable} for user in obj.users],
            }

        if isinstance(obj, model.BalanceChange):
            return {
                "uid": obj.uid,
                "amount": obj.amount,
                "category_uid": obj.is_income and obj.income_category_uid or obj.expense_category_uid,
                "description": obj.description,
                "tags": obj.tags_as_string(),
            }

        if isinstance(obj, Decimal):
            return babel.numbers.format_decimal(obj, locale=get_lang()[0]).replace(
                babel.numbers.get_group_symbol(locale=get_lang()[0]), " "
            )

        if isinstance(obj, date) or isinstance(obj, datetime):
            return str(obj)
        return simplejson.JSONEncoder.default(self, obj)
Пример #5
0
def balances():
    """
    Returns list of all balances available for user.
    """
    model = model_instance()
    dbFacade = DbFacade(model.session(), model)
    return dbFacade.balances.balanceDao.get_by_user(user_uid = authenticated_user().uid)
Пример #6
0
def change_categories():
    """
    Returns list of change categories.
    """
    model = model_instance()
    dbFacade = DbFacade(model.session(), model)
    return dbFacade.balances.changeCategoryDao.all()
Пример #7
0
    def validate_python(self, value, state):
        model = model_instance()
        db = model.session

        token = db.query(model.PasswordResetRequest).filter_by(token=value).first()
        if not token:
            raise formencode.Invalid(self.message("invalid", state), value, state)
        db.expunge(token)
        if token.sent_on is not None and (datetime.utcnow() - token.sent_on).days > 1:
            raise formencode.Invalid(self.message("expired", state), value, state)
Пример #8
0
    def setUp(self):
        super(DbTestCase, self).setUp()

        from paste.deploy.loadwsgi import appconfig

        self.config = appconfig("config:test.ini", relative_to=conf_dir)

        from sqlalchemy import engine_from_config
        from fivecents.model import init_model, model_instance

        init_model(bind=engine_from_config(self.config, "sqlalchemy."))

        self.model = model_instance()
        self.connection = self.model.engine.connect()
        self.db = self.model.session
Пример #9
0
 def get_sa_model(self):
     return model_instance()
Пример #10
0
 def get_sa_session(self):
     return model_instance().session