##// END OF EJS Templates
fix(caching): fixed problems with Cache query for users....
fix(caching): fixed problems with Cache query for users. The old way of querying caused the user get query to be always cached, and returning old results even in 2fa forms. The new limited query doesn't cache the user object resolving issues

File last commit:

r5095:aa627a5f default
r5365:ae8a165b default
Show More
preparers.py
97 lines | 2.5 KiB | text/x-python | PythonLexer
copyrights: updated for 2023
r5088 # Copyright (C) 2016-2023 RhodeCode GmbH
gists: use colander schema to validate input data....
r523 #
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License, version 3
# (only), as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This program is dual-licensed. If you wish to learn more about the
# RhodeCode Enterprise Edition, including its added features, Support services,
# and proprietary license terms, please see https://rhodecode.com/licenses/
validators/schemas: python3 fixes str vs unicode and few test breaking fixes
r5066 from rhodecode.lib.str_utils import convert_special_chars, safe_int, safe_bytes
def to_bytes_preparer(value):
if value:
value = safe_bytes(value)
return value
gists: use colander schema to validate input data....
r523
def strip_preparer(value):
"""
strips given values using .strip() function
"""
if value:
value = value.strip()
return value
schema: preparer should keep case by default.
r1216 def slugify_preparer(value, keep_case=True):
gists: use colander schema to validate input data....
r523 """
Slugify given value to a safe representation for url/id
"""
from rhodecode.lib.utils import repo_name_slug
if value:
schema: preparer should keep case by default.
r1216 value = repo_name_slug(value if keep_case else value.lower())
gists: use colander schema to validate input data....
r523 return value
def non_ascii_strip_preparer(value):
"""
trie to replace non-ascii letters to their ascii representation
eg::
`żołw` converts into `zolw`
"""
if value:
validators/schemas: python3 fixes str vs unicode and few test breaking fixes
r5066 value = convert_special_chars(value)
gists: use colander schema to validate input data....
r523 return value
def unique_list_preparer(value):
"""
Converts an list to a list with only unique values
"""
def make_unique(value):
seen = []
return [c for c in value if
not (c in seen or seen.append(c))]
if isinstance(value, list):
ret_val = make_unique(value)
elif isinstance(value, set):
ret_val = list(value)
elif isinstance(value, tuple):
ret_val = make_unique(value)
elif value is None:
ret_val = []
else:
ret_val = [value]
return ret_val
def unique_list_from_str_preparer(value):
"""
Converts an list to a list with only unique values
"""
from rhodecode.lib.utils2 import aslist
py3: remove use of pyramid.compat
r4908 if isinstance(value, str):
gists: use colander schema to validate input data....
r523 value = aslist(value, ',')
validators/schemas: python3 fixes str vs unicode and few test breaking fixes
r5066 return unique_list_preparer(value)
def ensure_value_is_int(value):
return safe_int(value)