def get_limited_validator(max_char = 100, min_char = 0): message = '' if 0 < min_char and 0 < max_char: message = get_text('FIELD_OVER') % (min_char, max_char) elif 0 < min_char: message = get_text('FIELD_TOO_SHORT') % min_char elif 0 < max_char: message = get_text('FIELD_TOO_LONG') % max_char return wt_validators.Length( min = min_char, max = max_char, message = message)
def author_required(original_func): @functools.wraps(original_func) def decorated_func(arg, *args, **kargs): if not arg.is_logged_in: arg.add_flash(get_text('LOGIN_REQUIRED'), 'error') arg.redirect('/about') return try: assert 'request_id' in kargs and 'offer_id' in kargs, 'Invalid request' uid = arg.current_user.key().id() rid = force_int(kargs['request_id']) oid = force_int(kargs['offer_id']) request = OneToOnesService.get_request(rid) assert request, 'No reqeust found' offer = OneToOnesService.get_offer(oid) assert offer, 'No offer found' except AssertionError, e: logging.error("# %s" % e) arg.render_error(404) return if request.author_id != uid and offer.author_id != uid: logging.error("# No permission to access") user = users.get_current_user() if user and users.is_current_user_admin(): logging.info("# But pass with admin permission.") else: arg.add_flash(get_text('LOGIN_REQUIRED'), 'error') arg.redirect('/') return original_func(arg, *args, **kargs)
def decorated_func(arg, *args, **kargs): if not arg.is_logged_in: logging.warning('# Login required: %s' % arg.__class__.__name__) arg.add_flash(get_text('LOGIN_REQUIRED'), 'error') arg.redirect('/about') return original_func(arg, *args, **kargs)
def decorated_func(arg, *args, **kargs): if not arg.is_logged_in: arg.add_flash(get_text('LOGIN_REQUIRED'), 'error') arg.redirect('/about') return try: assert 'request_id' in kargs and 'offer_id' in kargs, 'Invalid request' uid = arg.current_user.key().id() rid = force_int(kargs['request_id']) oid = force_int(kargs['offer_id']) request = OneToOnesService.get_request(rid) assert request, 'No reqeust found' offer = OneToOnesService.get_offer(oid) assert offer, 'No offer found' except AssertionError, e: logging.error("# %s" % e) arg.render_error(404) return