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
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)
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)
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)
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)
def change_categories(): """ Returns list of change categories. """ model = model_instance() dbFacade = DbFacade(model.session(), model) return dbFacade.balances.changeCategoryDao.all()
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)
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
def get_sa_model(self): return model_instance()
def get_sa_session(self): return model_instance().session