Skip to content

Commit 281ba89

Browse files
committed
Fix internationalized strings with multiple unlabeled % replacements.
Get rid of warnings from gettext about untranslatable strings.
1 parent 3263d9a commit 281ba89

File tree

1 file changed

+42
-20
lines changed

1 file changed

+42
-20
lines changed

roundup/cgi/client.py

Lines changed: 42 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1403,7 +1403,10 @@ def handle_csrf(self, api=False):
14031403
for header in header_names:
14041404
if (config["WEB_CSRF_ENFORCE_HEADER_%s" % header] == 'required'
14051405
and "HTTP_%s" % header.replace('-', '_') not in self.env):
1406-
logger.error(self._("csrf header %s required but missing for user%s."), header, current_user)
1406+
logger.error(self._(
1407+
"csrf header %(header)s required but missing for user%(userid)s.") % {
1408+
'header': header,
1409+
'userid': current_user})
14071410
raise Unauthorised(self._("Missing header: %s") % header)
14081411

14091412
# self.base always matches: ^https?://hostname
@@ -1412,13 +1415,14 @@ def handle_csrf(self, api=False):
14121415
if not self.is_referer_header_ok(api=api):
14131416
referer = self.env['HTTP_REFERER']
14141417
if enforce in ('required', 'yes'):
1415-
logger.error(self._("csrf Referer header check failed for user%s. Value=%s"), current_user, referer)
1418+
logger.error(self._(
1419+
"csrf Referer header check failed for user%(userid)s. Value=%(referer)s") % {'userid': current_user, 'referer': referer})
14161420
raise Unauthorised(self._("Invalid Referer: %s") % (
14171421
referer))
14181422
elif enforce == 'logfailure':
14191423
logger.warning(self._(
1420-
"csrf Referer header check failed for user%s. Value=%s"),
1421-
current_user, referer)
1424+
"csrf Referer header check failed for user%(userid)s. Value=%(referer)s") % {
1425+
'userid': current_user, 'referer': referer})
14221426
else:
14231427
header_pass += 1
14241428

@@ -1430,10 +1434,13 @@ def handle_csrf(self, api=False):
14301434
if not self.is_origin_header_ok(api=api):
14311435
origin = self.env['HTTP_ORIGIN']
14321436
if enforce in ('required', 'yes'):
1433-
logger.error(self._("csrf Origin header check failed for user%s. Value=%s"), current_user, origin)
1437+
logger.error(self._(
1438+
"csrf Origin header check failed for user%(userid)s. Value=%(origin)s") % {
1439+
'userid': current_user, 'origin': origin})
14341440
raise Unauthorised(self._("Invalid Origin %s" % origin))
14351441
elif enforce == 'logfailure':
1436-
logger.warning(self._("csrf Origin header check failed for user%s. Value=%s"), current_user, origin)
1442+
logger.warning(self._(
1443+
"csrf Origin header check failed for user%(userid)s. Value=%(origin)s") % {'userid': current_user, 'origin': origin})
14371444
else:
14381445
header_pass += 1
14391446

@@ -1446,14 +1453,14 @@ def handle_csrf(self, api=False):
14461453
if foundat not in [4, 5]:
14471454
if enforce in ('required', 'yes'):
14481455
logger.error(self._(
1449-
"csrf X-FORWARDED-HOST header check failed for user%s. Value=%s"),
1450-
current_user, host)
1456+
"csrf X-FORWARDED-HOST header check failed for user%(userid)s. Value=%(host)s") % {
1457+
'usierid': current_user, 'host': host})
14511458
raise Unauthorised(self._(
14521459
"Invalid X-FORWARDED-HOST %s") % host)
14531460
elif enforce == 'logfailure':
14541461
logger.warning(self._(
1455-
"csrf X-FORWARDED-HOST header check failed for user%s. Value=%s"),
1456-
current_user, host)
1462+
"csrf X-FORWARDED-HOST header check failed for user%(userid)s. Value=%(host)s") % {
1463+
'userid': current_user, 'host': host})
14571464
else:
14581465
header_pass += 1
14591466
else:
@@ -1470,10 +1477,10 @@ def handle_csrf(self, api=False):
14701477
# 4 means http:// prefix, 5 means https:// prefix
14711478
if foundat not in [4, 5]:
14721479
if enforce in ('required', 'yes'):
1473-
logger.error(self._("csrf HOST header check failed for user%s. Value=%s"), current_user, host)
1480+
logger.error(self._("csrf HOST header check failed for user%(userid)s. Value=%(host)s") % {'userid': current_user, 'host': host})
14741481
raise Unauthorised(self._("Invalid HOST %s") % host)
14751482
elif enforce == 'logfailure':
1476-
logger.warning(self._("csrf HOST header check failed for user%s. Value=%s"), current_user, host)
1483+
logger.warning(self._("csrf HOST header check failed for user%(userid)s. Value=%(host)s") % {'userid': current_user, 'host': host})
14771484
else:
14781485
header_pass += 1
14791486

@@ -1585,23 +1592,38 @@ def handle_csrf(self, api=False):
15851592
if current_user != nonce_user:
15861593
if enforce in ('required', "yes"):
15871594
logger.error(
1588-
self._("Csrf mismatch user: current user %s != stored user %s, current session, stored session: %s,%s for key %s."),
1589-
current_user, nonce_user, current_session, nonce_session, key)
1595+
self._("Csrf mismatch user: current user %(user)s != stored user %(stored)s, current session, stored session: %(cur_sess)s,%(stor_sess)s for key %(key)s.") % {
1596+
'user': current_user,
1597+
'stored': nonce_user,
1598+
'cur_sess': current_session,
1599+
'stor_sess': nonce_session,
1600+
'key': key})
15901601
raise UsageError(self._("We can't validate your session (csrf failure). Re-enter any unsaved data and try again."))
15911602
elif enforce == 'logfailure':
15921603
logger.warning(
1593-
self._("logged only: Csrf mismatch user: current user %s != stored user %s, current session, stored session: %s,%s for key %s."),
1594-
current_user, nonce_user, current_session, nonce_session, key)
1604+
self._("Csrf mismatch user: current user %(user)s != stored user %(stored)s, current session, stored session: %(cur_sess)s,%(stor_sess)s for key %(key)s.") % {
1605+
'user': current_user,
1606+
'stored': nonce_user,
1607+
'cur_sess': current_session,
1608+
'stor_sess': nonce_session,
1609+
'key': key})
15951610
if current_session != nonce_session:
15961611
if enforce in ('required', "yes"):
15971612
logger.error(
1598-
self._("Csrf mismatch user: current session %s != stored session %s, current user/stored user is: %s for key %s."),
1599-
current_session, nonce_session, current_user, key)
1613+
self._("Csrf mismatch user: current session %(curr_sess)s != stored session %(stor_sess)s, current user/stored user is: %(user)s for key %(key)s.") % {
1614+
'curr_sess': current_session,
1615+
'stor_sess': nonce_session,
1616+
'user': current_user,
1617+
'key': key})
16001618
raise UsageError(self._("We can't validate your session (csrf failure). Re-enter any unsaved data and try again."))
16011619
elif enforce == 'logfailure':
16021620
logger.warning(
1603-
self._("logged only: Csrf mismatch user: current session %s != stored session %s, current user/stored user is: %s for key %s."),
1604-
current_session, nonce_session, current_user, key)
1621+
self._("logged only: Csrf mismatch user: current session %(curr_sess)s != stored session %(stor_sess)s, current user/stored user is: %(user)s for key %(key)s.") % {
1622+
'curr_sess': current_session,
1623+
'stor_sess': nonce_session,
1624+
'user': current_user,
1625+
'key': key})
1626+
16051627
# we are done and the change can occur.
16061628
return True
16071629

0 commit comments

Comments
 (0)