Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
139
Merge Requests
139
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
nexedi
erp5
Commits
ad2c135c
Commit
ad2c135c
authored
Mar 19, 2023
by
Jérome Perrin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
*: use base64 encodebytes for python3.9
parent
d46d4761
Changes
24
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
41 additions
and
41 deletions
+41
-41
bt5/erp5_core_test/TestTemplateItem/portal_components/test.erp5.testCookieCrumbler.py
...ateItem/portal_components/test.erp5.testCookieCrumbler.py
+2
-2
bt5/erp5_dms/ExtensionTemplateItem/portal_components/extension.erp5.DocumentManagement.py
...em/portal_components/extension.erp5.DocumentManagement.py
+3
-3
bt5/erp5_document_scanner/SkinTemplateItem/portal_skins/erp5_document_scanner/Base_getTempImageList.py
...rtal_skins/erp5_document_scanner/Base_getTempImageList.py
+2
-2
bt5/erp5_oauth2_authorisation/TestTemplateItem/portal_components/test.erp5.testOAuth2Server.py
...plateItem/portal_components/test.erp5.testOAuth2Server.py
+1
-1
bt5/erp5_oauth2_resource/DocumentTemplateItem/portal_components/document.erp5.OAuth2AuthorisationClientConnector.py
...nents/document.erp5.OAuth2AuthorisationClientConnector.py
+1
-1
bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_officejs_common/StaticWebSite_getRedirectSourceUrlForOfficeJSApplication.py
...aticWebSite_getRedirectSourceUrlForOfficeJSApplication.py
+1
-1
bt5/erp5_payzen_secure_payment/DocumentTemplateItem/portal_components/document.erp5.PayzenService.py
...lateItem/portal_components/document.erp5.PayzenService.py
+1
-1
bt5/erp5_smart_assistant/SkinTemplateItem/portal_skins/erp5_smart_assistant/Query_createExpenseRecord.py
...l_skins/erp5_smart_assistant/Query_createExpenseRecord.py
+1
-1
bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web/Base_formatAttachmentListToMIMEMultipartString.py
...rp5_web/Base_formatAttachmentListToMIMEMultipartString.py
+1
-1
bt5/erp5_web_shacache/TestTemplateItem/portal_components/test.erp5.ShaCacheMixin.py
...TemplateItem/portal_components/test.erp5.ShaCacheMixin.py
+1
-1
bt5/networkcache_erp5/TestTemplateItem/portal_components/test.erp5.testShaCacheExternal.py
...eItem/portal_components/test.erp5.testShaCacheExternal.py
+1
-1
bt5/networkcache_erp5/TestTemplateItem/portal_components/test.erp5.testShaDirExternal.py
...ateItem/portal_components/test.erp5.testShaDirExternal.py
+1
-1
erp5/util/testbrowser/examples/createERP5User.py
erp5/util/testbrowser/examples/createERP5User.py
+1
-1
product/ERP5/Tool/TemplateTool.py
product/ERP5/Tool/TemplateTool.py
+2
-2
product/ERP5/bin/bigfile_client_example.py
product/ERP5/bin/bigfile_client_example.py
+1
-1
product/ERP5/bootstrap/erp5_core/DocumentTemplateItem/portal_components/document.erp5.Document.py
...tTemplateItem/portal_components/document.erp5.Document.py
+2
-2
product/ERP5/bootstrap/erp5_core/MixinTemplateItem/portal_components/mixin.erp5.BaseExtensibleTraversableMixin.py
...l_components/mixin.erp5.BaseExtensibleTraversableMixin.py
+2
-2
product/ERP5/tests/erp5_url_checker.py
product/ERP5/tests/erp5_url_checker.py
+1
-1
product/ERP5Security/ERP5KeyAuthPlugin.py
product/ERP5Security/ERP5KeyAuthPlugin.py
+3
-3
product/ERP5Security/__init__.py
product/ERP5Security/__init__.py
+2
-2
product/ERP5Type/CachePlugins/DistributedRamCache.py
product/ERP5Type/CachePlugins/DistributedRamCache.py
+1
-1
product/ERP5Type/XMLExportImport/__init__.py
product/ERP5Type/XMLExportImport/__init__.py
+3
-3
product/ERP5Type/XMLExportImport/ppml.py
product/ERP5Type/XMLExportImport/ppml.py
+6
-6
product/ERP5Type/patches/CookieCrumbler.py
product/ERP5Type/patches/CookieCrumbler.py
+1
-1
No files found.
bt5/erp5_core_test/TestTemplateItem/portal_components/test.erp5.testCookieCrumbler.py
View file @
ad2c135c
...
...
@@ -73,7 +73,7 @@ class ERP5CookieCrumblerTests (CookieCrumblerTests):
self
.
req
=
makerequest
(
root
,
self
.
responseOut
)
self
.
credentials
=
quote
(
base64
.
encode
string
(
'abraham:pass-w'
).
replace
(
'
\
012
'
,
''
))
base64
.
encode
bytes
(
'abraham:pass-w'
).
replace
(
'
\
012
'
,
''
))
def
testCookieLongLogin
(
self
):
# verify the user and auth cookie get set
...
...
@@ -88,7 +88,7 @@ class ERP5CookieCrumblerTests (CookieCrumblerTests):
'abrahammmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
)
resp
=
self
.
req
.
response
self
.
assertIn
(
'__ac'
,
resp
.
cookies
)
self
.
credentials
=
base64
.
encode
string
(
'%s:%s'
%
(
long_name
,
long_pass
)).
replace
(
'
\
012
'
,
''
)
self
.
credentials
=
base64
.
encode
bytes
(
'%s:%s'
%
(
long_name
,
long_pass
)).
replace
(
'
\
012
'
,
''
)
self
.
assertEqual
(
resp
.
cookies
[
'__ac'
][
'value'
],
self
.
credentials
)
self
.
assertEqual
(
resp
.
cookies
[
'__ac'
][
normalizeCookieParameterName
(
'path'
)],
'/'
)
...
...
bt5/erp5_dms/ExtensionTemplateItem/portal_components/extension.erp5.DocumentManagement.py
View file @
ad2c135c
...
...
@@ -58,8 +58,8 @@ def convertToOdf(self, name, data):
to work with (and we for example have to figure out portal_type)
"""
sp
=
mkProxy
(
self
)
kw
=
sp
.
run_convert
(
name
,
base64
.
encode
string
(
data
))
odf
=
base64
.
decode
string
(
kw
[
'data'
])
kw
=
sp
.
run_convert
(
name
,
base64
.
encode
bytes
(
data
))
odf
=
base64
.
decode
bytes
(
kw
[
'data'
])
return
odf
def
mkProxy
(
self
):
...
...
@@ -74,7 +74,7 @@ def mkProxy(self):
def
generateFile
(
self
,
name
,
data
,
format
):
# pylint: disable=redefined-builtin
sp
=
mkProxy
(
self
)
kw
=
sp
.
run_generate
(
name
,
data
,
None
,
format
)
res
=
base64
.
decode
string
(
kw
[
'data'
])
res
=
base64
.
decode
bytes
(
kw
[
'data'
])
return
res
def
getAttrFromFilename
(
self
,
fname
):
...
...
bt5/erp5_document_scanner/SkinTemplateItem/portal_skins/erp5_document_scanner/Base_getTempImageList.py
View file @
ad2c135c
"""
Proxy role as Manager is required here to access getResultList
"""
from
base64
import
decode
string
from
base64
import
decode
bytes
if
REQUEST
:
return
RuntimeError
(
"You cannot run this script in the url"
)
...
...
@@ -11,7 +11,7 @@ pdf_data_list = []
for
result
in
active_process
.
getResultList
():
if
result
.
reference
in
image_list
:
pdf_data_list
.
append
(
image_module
.
newContent
(
data
=
decode
string
(
result
.
detail
),
image_module
.
newContent
(
data
=
decode
bytes
(
result
.
detail
),
portal_type
=
"Image"
,
temp_object
=
True
).
convert
(
format
=
"pdf"
)[
1
])
...
...
bt5/erp5_oauth2_authorisation/TestTemplateItem/portal_components/test.erp5.testOAuth2Server.py
View file @
ad2c135c
...
...
@@ -782,7 +782,7 @@ class TestOAuth2(ERP5TypeTestCase):
"""
Get a token, renew it, terminate session.
"""
basic_auth
=
'Basic '
+
bytes2str
(
base64
.
encode
string
(
basic_auth
=
'Basic '
+
bytes2str
(
base64
.
encode
bytes
(
str2bytes
(
_TEST_USER_LOGIN
+
':'
+
self
.
__password
),
)).
rstrip
()
oauth2_server_connector
=
self
.
__oauth2_server_connector_value
.
getPath
()
...
...
bt5/erp5_oauth2_resource/DocumentTemplateItem/portal_components/document.erp5.OAuth2AuthorisationClientConnector.py
View file @
ad2c135c
...
...
@@ -157,7 +157,7 @@ class _SimpleHTTPRequest(object):
def
_authUserPW
(
self
):
if
self
.
_auth
.
lower
().
startswith
(
'basic '
):
return
bytes2str
(
base64
.
decode
string
(
return
bytes2str
(
base64
.
decode
bytes
(
self
.
_auth
.
split
(
None
,
1
)[
1
],
)).
split
(
':'
,
1
)
...
...
bt5/erp5_officejs/SkinTemplateItem/portal_skins/erp5_officejs_common/StaticWebSite_getRedirectSourceUrlForOfficeJSApplication.py
View file @
ad2c135c
...
...
@@ -20,7 +20,7 @@ except KeyError:
try
:
encoded
=
name
.
replace
(
"definition_view/"
,
""
,
1
)
name
=
base64
.
decode
string
(
encoded
)
name
=
base64
.
decode
bytes
(
encoded
)
base_64
=
True
except
binascii
.
Error
:
pass
...
...
bt5/erp5_payzen_secure_payment/DocumentTemplateItem/portal_components/document.erp5.PayzenService.py
View file @
ad2c135c
...
...
@@ -54,7 +54,7 @@ class PayzenREST:
"""
def
callPayzenApi
(
self
,
URL
,
payzen_dict
):
base64string
=
base64
.
encode
string
(
base64string
=
base64
.
encode
bytes
(
'%s:%s'
%
(
self
.
getServiceUsername
(),
self
.
getServiceApiKey
())).
replace
(
'
\
n
'
,
''
)
...
...
bt5/erp5_smart_assistant/SkinTemplateItem/portal_skins/erp5_smart_assistant/Query_createExpenseRecord.py
View file @
ad2c135c
...
...
@@ -3,7 +3,7 @@ portal = context.getPortalObject()
expense_record_module
=
portal
.
getDefaultModule
(
'Expense Record'
)
sender
=
portal
.
portal_membership
.
getAuthenticatedMember
().
getUserValue
()
data
=
context
.
getData
()
data64
=
u''
.
join
(
base64
.
encode
string
(
data
).
splitlines
())
data64
=
u''
.
join
(
base64
.
encode
bytes
(
data
).
splitlines
())
photo_data
=
u'data:%s;base64,%s'
%
(
"image/*"
,
data64
)
expense_record_module
.
newContent
(
comment
=
comment
,
...
...
bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web/Base_formatAttachmentListToMIMEMultipartString.py
View file @
ad2c135c
...
...
@@ -36,7 +36,7 @@ To send specific encoded data, please make your attachment dict look like:
"mime_type": "text/html",
"encode": "noop",
"add_header_list": [("Content-Transfer-Encoding", "my-encoding")],
"data": encode
string
(html_data),
"data": encode
bytes
(html_data),
}
"""
...
...
bt5/erp5_web_shacache/TestTemplateItem/portal_components/test.erp5.ShaCacheMixin.py
View file @
ad2c135c
...
...
@@ -48,7 +48,7 @@ class ShaCacheMixin(object):
self
.
shacache
.
publish
()
self
.
header_dict
=
{
'Content-Type'
:
'application/json'
,
'Authorization'
:
'Basic %s'
%
(
base64
.
encode
string
(
'ERP5TypeTestCase:'
).
strip
())
'Authorization'
:
'Basic %s'
%
(
base64
.
encode
bytes
(
'ERP5TypeTestCase:'
).
strip
())
}
self
.
shacache_url
=
self
.
shacache
.
absolute_url
()
self
.
tic
()
...
...
bt5/networkcache_erp5/TestTemplateItem/portal_components/test.erp5.testShaCacheExternal.py
View file @
ad2c135c
...
...
@@ -60,7 +60,7 @@ class TestShaCacheExternal(ShaCacheMixin, ShaSecurityMixin, ERP5TypeTestCase):
# Define POST headers with Authentication
self
.
content_type
=
'application/json'
authentication_string
=
'lucas:lucas'
base64string
=
base64
.
encode
string
(
authentication_string
).
strip
()
base64string
=
base64
.
encode
bytes
(
authentication_string
).
strip
()
self
.
header_dict
=
{
'Authorization'
:
'Basic %s'
%
base64string
,
'Content-Type'
:
self
.
content_type
}
...
...
bt5/networkcache_erp5/TestTemplateItem/portal_components/test.erp5.testShaDirExternal.py
View file @
ad2c135c
...
...
@@ -61,7 +61,7 @@ class TestShaDirExternal(ShaDirMixin, ShaSecurityMixin, ERP5TypeTestCase):
# Define POST headers with Authentication
self
.
content_type
=
'application/json'
authentication_string
=
'lucas:lucas'
base64string
=
base64
.
encode
string
(
authentication_string
).
strip
()
base64string
=
base64
.
encode
bytes
(
authentication_string
).
strip
()
self
.
header_dict
=
{
'Authorization'
:
'Basic %s'
%
base64string
,
'Content-Type'
:
self
.
content_type
}
...
...
erp5/util/testbrowser/examples/createERP5User.py
View file @
ad2c135c
...
...
@@ -45,7 +45,7 @@ zope_url = url.rsplit('/', 2)[0]
import
base64
browser
.
mech_browser
.
addheaders
.
append
(
(
'Authorization'
,
'Basic %s'
%
base64
.
encode
string
(
'%s:%s'
%
(
username
,
password
))))
'Basic %s'
%
base64
.
encode
bytes
(
'%s:%s'
%
(
username
,
password
))))
for
index
in
range
(
user_nbr
):
new_username
=
"%s%d"
%
(
new_username_prefix
,
index
)
...
...
product/ERP5/Tool/TemplateTool.py
View file @
ad2c135c
...
...
@@ -64,7 +64,7 @@ import struct
from
base64
import
b64encode
,
b64decode
from
Products.ERP5Type.Message
import
translateString
from
zLOG
import
LOG
,
INFO
,
WARNING
from
base64
import
decode
string
from
base64
import
decode
bytes
import
subprocess
import
time
from
Products.ERP5Type.Utils
import
bytes2str
,
str2bytes
,
unicode2str
...
...
@@ -410,7 +410,7 @@ class TemplateTool (BaseTool):
"""
Import Business Template from passed base64 encoded text.
"""
import_file = StringIO(decode
string
(file_data))
import_file = StringIO(decode
bytes
(file_data))
return self.importFile(import_file = import_file, id = id, REQUEST = REQUEST,
batch_mode = batch_mode, **kw)
...
...
product/ERP5/bin/bigfile_client_example.py
View file @
ad2c135c
...
...
@@ -4,7 +4,7 @@ import six.moves.http_client
connection
=
six
.
moves
.
http_client
.
HTTPConnection
(
'192.168.242.68:12001'
)
import
base64
base64string
=
base64
.
encode
string
(
'zope:insecure'
)[:
-
1
]
base64string
=
base64
.
encode
bytes
(
'zope:insecure'
)[:
-
1
]
n
=
1
<<
20
...
...
product/ERP5/bootstrap/erp5_core/DocumentTemplateItem/portal_components/document.erp5.Document.py
View file @
ad2c135c
...
...
@@ -84,8 +84,8 @@ class NotConvertedError(Exception):pass
allow_class
(
NotConvertedError
)
import
base64
enc
=
base64
.
encode
string
dec
=
base64
.
decode
string
enc
=
base64
.
encode
bytes
dec
=
base64
.
decode
bytes
DOCUMENT_CONVERSION_SERVER_PROXY_TIMEOUT
=
360
DOCUMENT_CONVERSION_SERVER_RETRY
=
0
# store time (as int) where we had last failure in order
...
...
product/ERP5/bootstrap/erp5_core/MixinTemplateItem/portal_components/mixin.erp5.BaseExtensibleTraversableMixin.py
View file @
ad2c135c
...
...
@@ -28,7 +28,7 @@
##############################################################################
from
warnings
import
warn
from
base64
import
decode
string
from
base64
import
decode
bytes
from
zLOG
import
LOG
from
AccessControl
import
ClassSecurityInfo
,
getSecurityManager
...
...
@@ -106,7 +106,7 @@ class BaseExtensibleTraversableMixin(ExtensibleTraversableMixin):
# this logic is copied from identify() in
# AccessControl.User.BasicUserFolder.
if
auth
and
auth
.
lower
().
startswith
(
'basic '
):
name
=
decode
string
(
auth
.
split
(
' '
)[
-
1
]).
split
(
':'
,
1
)[
0
]
name
=
decode
bytes
(
auth
.
split
(
' '
)[
-
1
]).
split
(
':'
,
1
)[
0
]
if
name
is
not
None
:
user
=
portal_membership
.
_huntUser
(
name
,
self
)
else
:
...
...
product/ERP5/tests/erp5_url_checker.py
View file @
ad2c135c
...
...
@@ -99,7 +99,7 @@ class URLOpener(FancyURLopener):
if
not
host
:
raise
IOError
(
'http error'
,
'no host given'
)
if
user_passwd
:
import
base64
auth
=
base64
.
encode
string
(
user_passwd
).
strip
()
auth
=
base64
.
encode
bytes
(
user_passwd
).
strip
()
else
:
auth
=
None
h
=
six
.
moves
.
http_client
.
HTTP
(
host
)
...
...
product/ERP5Security/ERP5KeyAuthPlugin.py
View file @
ad2c135c
...
...
@@ -27,7 +27,7 @@
#
##############################################################################
from
base64
import
encode
string
,
decodestring
from
base64
import
encode
bytes
,
decodebytes
from
six.moves.urllib.parse
import
quote
,
unquote
from
DateTime
import
DateTime
from
zLOG
import
LOG
,
PROBLEM
...
...
@@ -270,7 +270,7 @@ class ERP5KeyAuthPlugin(ERP5UserManager, CookieAuthHelper):
default_cookie
=
request
.
get
(
self
.
default_cookie_name
,
None
)
if
default_cookie
is
not
None
:
#Cookie is found
cookie_val
=
decode
string
(
unquote
(
default_cookie
))
cookie_val
=
decode
bytes
(
unquote
(
default_cookie
))
if
cookie_val
is
not
None
:
login
,
password
=
cookie_val
.
split
(
':'
)
creds
[
'login'
]
=
login
...
...
@@ -305,7 +305,7 @@ class ERP5KeyAuthPlugin(ERP5UserManager, CookieAuthHelper):
response
.
setCookie
(
self
.
cookie_name
,
quote
(
cookie_val
),
path
=
'/'
)
#, expires=expires)
response
.
expireCookie
(
self
.
default_cookie_name
,
path
=
'/'
)
elif
login
is
not
None
and
new_password
is
not
None
:
cookie_val
=
encode
string
(
'%s:%s'
%
(
login
,
new_password
))
cookie_val
=
encode
bytes
(
'%s:%s'
%
(
login
,
new_password
))
cookie_val
=
cookie_val
.
rstrip
()
response
.
setCookie
(
self
.
default_cookie_name
,
quote
(
cookie_val
),
path
=
'/'
)
response
.
expireCookie
(
self
.
cookie_name
,
path
=
'/'
)
...
...
product/ERP5Security/__init__.py
View file @
ad2c135c
...
...
@@ -18,7 +18,7 @@ from __future__ import absolute_import
from
copy
import
deepcopy
from
collections
import
defaultdict
from
base64
import
encode
string
from
base64
import
encode
bytes
from
Acquisition
import
aq_inner
,
aq_parent
from
AccessControl.Permissions
import
manage_users
as
ManageUsers
...
...
@@ -77,7 +77,7 @@ if IS_ZOPE2: # BBB
except
AttributeError
:
pass
else
:
medusa_headers
[
'authorization'
]
=
'Basic %s'
%
encode
string
(
'%s:'
%
username
).
rstrip
()
medusa_headers
[
'authorization'
]
=
'Basic %s'
%
encode
bytes
(
'%s:'
%
username
).
rstrip
()
else
:
REQUEST
.
_orig_env
[
'REMOTE_USER'
]
=
username
else
:
# zope4
...
...
product/ERP5Type/CachePlugins/DistributedRamCache.py
View file @
ad2c135c
...
...
@@ -37,7 +37,7 @@ from .BaseCache import BaseCache
from
.BaseCache
import
CacheEntry
from
Products.ERP5Type
import
interfaces
import
zope.interface
from
base64
import
encode
string
from
base64
import
encode
bytes
try
:
from
Products.ERP5Type.Tool.MemcachedTool
import
MemcachedDict
,
SharedDict
...
...
product/ERP5Type/XMLExportImport/__init__.py
View file @
ad2c135c
...
...
@@ -233,7 +233,7 @@ def Folder_asXML(object, omit_xml_declaration=True, root=None):
## The code below was initially from OFS.XMLExportImport
from
six
import
string_types
as
basestring
from
base64
import
encode
string
from
base64
import
encode
bytes
from
ZODB.serialize
import
referencesf
from
ZODB.ExportImport
import
TemporaryFile
,
export_end_marker
from
ZODB.utils
import
p64
...
...
@@ -293,8 +293,8 @@ def reorderPickle(jar, p):
def
_mapOid
(
id_mapping
,
oid
):
idprefix
=
str
(
u64
(
oid
))
id
=
id_mapping
[
idprefix
]
old_aka
=
encode
string
(
oid
)[:
-
1
]
aka
=
encode
string
(
p64
(
long_
(
id
)))[:
-
1
]
# Rebuild oid based on mapped id
old_aka
=
encode
bytes
(
oid
)[:
-
1
]
aka
=
encode
bytes
(
p64
(
long_
(
id
)))[:
-
1
]
# Rebuild oid based on mapped id
id_mapping
.
setConvertedAka
(
old_aka
,
aka
)
return
idprefix
+
'.'
,
id
,
aka
...
...
product/ERP5Type/XMLExportImport/ppml.py
View file @
ad2c135c
...
...
@@ -42,7 +42,7 @@ else:
def
escape
(
s
,
encoding
=
'repr'
):
if
binary
(
s
)
and
isinstance
(
s
,
str
):
s
=
base64
.
encode
string
(
s
)[:
-
1
]
s
=
base64
.
encode
bytes
(
s
)[:
-
1
]
encoding
=
'base64'
elif
'>'
in
s
or
'<'
in
s
or
'&'
in
s
:
if
not
']]>'
in
s
:
...
...
@@ -56,7 +56,7 @@ def escape(s, encoding='repr'):
def
unescape
(
s
,
encoding
):
if
encoding
==
'base64'
:
return
base64
.
decode
string
(
s
)
return
base64
.
decode
bytes
(
s
)
else
:
s
=
s
.
replace
(
b'<'
,
b'<'
)
s
=
s
.
replace
(
b'>'
,
b'>'
)
...
...
@@ -92,12 +92,12 @@ def convert(S):
if
not
isinstance
(
S
,
six
.
text_type
):
S
.
decode
(
'utf8'
)
except
UnicodeDecodeError
:
return
'base64'
,
base64
.
encode
string
(
S
)[:
-
1
]
return
'base64'
,
base64
.
encode
bytes
(
S
)[:
-
1
]
else
:
new
=
reprs_re
.
sub
(
sub_reprs
,
S
)
### patch end
if
len
(
new
)
>
(
1.4
*
len
(
S
)):
return
'base64'
,
base64
.
encode
string
(
S
)[:
-
1
]
return
'base64'
,
base64
.
encode
bytes
(
S
)[:
-
1
]
elif
'>'
in
new
or
'<'
in
S
or
'&'
in
S
:
if
not
']]>'
in
S
:
return
'cdata'
,
'<![CDATA[
\
n
\
n
'
+
new
+
'
\
n
\
n
]]>'
...
...
@@ -108,7 +108,7 @@ def convert(S):
# For optimization.
def
unconvert
(
encoding
,
S
):
if
encoding
==
'base64'
:
return
base64
.
decode
string
(
S
)
return
base64
.
decode
bytes
(
S
)
else
:
return
str2bytes
(
eval
(
b"'"
+
S
.
replace
(
b'
\
n
'
,
b''
)
+
b"'"
))
...
...
@@ -173,7 +173,7 @@ class String(Scalar):
# This is used when strings represent references which need to
# be converted.
encoding
=
'base64'
v
=
base64
.
encode
string
(
self
.
_v
)[:
-
1
]
v
=
base64
.
encode
bytes
(
self
.
_v
)[:
-
1
]
self
.
_v
=
self
.
mapping
.
convertBase64
(
v
)
else
:
encoding
,
self
.
_v
=
convert
(
self
.
_v
)
...
...
product/ERP5Type/patches/CookieCrumbler.py
View file @
ad2c135c
...
...
@@ -192,7 +192,7 @@ def credentialsChanged(self, user, name, pw, request=None):
reponse
=
request
[
'RESPONSE'
]
# <patch>
# We don't want new lines, so use base64.standard_b64encode instead of
# base64.encode
string
# base64.encode
bytes
ac
=
standard_b64encode
(
'%s:%s'
%
(
name
,
pw
)).
rstrip
()
# </patch>
method
=
self
.
getCookieMethod
(
'setAuthCookie'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment