mirror of
https://github.com/brain-tec/account_ebics.git
synced 2024-11-23 12:42:04 +00:00
[IMP] remove storage of ebics_files in EBICS Files Root directory
This commit is contained in:
parent
e12d4564fc
commit
0a4249ccbc
@ -91,14 +91,6 @@ class EbicsConfig(models.Model):
|
|||||||
"between customer and financial institution. "
|
"between customer and financial institution. "
|
||||||
"The human user also can authorise orders.",
|
"The human user also can authorise orders.",
|
||||||
)
|
)
|
||||||
ebics_files = fields.Char(
|
|
||||||
string="EBICS Files Root",
|
|
||||||
required=True,
|
|
||||||
readonly=True,
|
|
||||||
states={"draft": [("readonly", False)]},
|
|
||||||
default=lambda self: self._default_ebics_files(),
|
|
||||||
help="Root Directory for EBICS File Transfer Folders.",
|
|
||||||
)
|
|
||||||
# We store the EBICS keys in a separate directory in the file system.
|
# We store the EBICS keys in a separate directory in the file system.
|
||||||
# This directory requires special protection to reduce fraude.
|
# This directory requires special protection to reduce fraude.
|
||||||
ebics_keys = fields.Char(
|
ebics_keys = fields.Char(
|
||||||
@ -253,14 +245,3 @@ class EbicsConfig(models.Model):
|
|||||||
)
|
)
|
||||||
% dirname
|
% dirname
|
||||||
)
|
)
|
||||||
|
|
||||||
def _check_ebics_files(self):
|
|
||||||
dirname = self.ebics_files or ""
|
|
||||||
if not os.path.exists(dirname):
|
|
||||||
raise UserError(
|
|
||||||
_(
|
|
||||||
"EBICS Files Root Directory %s is not available."
|
|
||||||
"\nPlease contact your system administrator."
|
|
||||||
)
|
|
||||||
% dirname
|
|
||||||
)
|
|
||||||
|
@ -255,7 +255,6 @@ class EbicsUserID(models.Model):
|
|||||||
Create new keys and certificates for this user
|
Create new keys and certificates for this user
|
||||||
"""
|
"""
|
||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
self.ebics_config_id._check_ebics_files()
|
|
||||||
if self.state != "draft":
|
if self.state != "draft":
|
||||||
raise UserError(
|
raise UserError(
|
||||||
_("Set state to 'draft' before Bank Key (re)initialisation.")
|
_("Set state to 'draft' before Bank Key (re)initialisation.")
|
||||||
@ -442,7 +441,6 @@ class EbicsUserID(models.Model):
|
|||||||
must be downloaded and checked for consistency.
|
must be downloaded and checked for consistency.
|
||||||
"""
|
"""
|
||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
self.ebics_config_id._check_ebics_files()
|
|
||||||
if self.state != "get_bank_keys":
|
if self.state != "get_bank_keys":
|
||||||
raise UserError(_("Set state to 'Get Keys from Bank'."))
|
raise UserError(_("Set state to 'Get Keys from Bank'."))
|
||||||
try:
|
try:
|
||||||
|
@ -52,7 +52,6 @@
|
|||||||
<field name="ebics_host" />
|
<field name="ebics_host" />
|
||||||
<field name="ebics_url" />
|
<field name="ebics_url" />
|
||||||
<field name="ebics_partner" />
|
<field name="ebics_partner" />
|
||||||
<field name="ebics_files" />
|
|
||||||
<field name="ebics_keys" />
|
<field name="ebics_keys" />
|
||||||
</group>
|
</group>
|
||||||
<group name="main-right">
|
<group name="main-right">
|
||||||
|
@ -27,7 +27,6 @@ class EbicsAdminOrder(models.TransientModel):
|
|||||||
|
|
||||||
def ebics_admin_order(self):
|
def ebics_admin_order(self):
|
||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
self.ebics_config_id._check_ebics_files()
|
|
||||||
client = self._setup_client()
|
client = self._setup_client()
|
||||||
if not client:
|
if not client:
|
||||||
self.note += (
|
self.note += (
|
||||||
|
@ -10,7 +10,6 @@ logging.basicConfig(
|
|||||||
|
|
||||||
import base64
|
import base64
|
||||||
import logging
|
import logging
|
||||||
import os
|
|
||||||
from sys import exc_info
|
from sys import exc_info
|
||||||
from traceback import format_exception
|
from traceback import format_exception
|
||||||
|
|
||||||
@ -193,7 +192,6 @@ class EbicsXfer(models.TransientModel):
|
|||||||
|
|
||||||
def ebics_download(self):
|
def ebics_download(self):
|
||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
self.ebics_config_id._check_ebics_files()
|
|
||||||
ctx = self.env.context.copy()
|
ctx = self.env.context.copy()
|
||||||
self.note = ""
|
self.note = ""
|
||||||
err_cnt = 0
|
err_cnt = 0
|
||||||
@ -532,43 +530,17 @@ class EbicsXfer(models.TransientModel):
|
|||||||
return ebics_files
|
return ebics_files
|
||||||
|
|
||||||
def _create_ebics_file(self, data, file_format, docname=None):
|
def _create_ebics_file(self, data, file_format, docname=None):
|
||||||
"""
|
|
||||||
Write the data as received over the EBICS connection
|
|
||||||
to a temporary file so that is is available for
|
|
||||||
analysis (e.g. in case formats are received that cannot
|
|
||||||
be handled in the current version of this module).
|
|
||||||
|
|
||||||
TODO: add code to clean-up /tmp on a regular basis.
|
|
||||||
|
|
||||||
After saving the data received we call the method to perform
|
|
||||||
file format specific processing.
|
|
||||||
"""
|
|
||||||
ebics_files_root = self.ebics_config_id.ebics_files
|
|
||||||
tmp_dir = os.path.normpath(ebics_files_root + "/tmp")
|
|
||||||
if not os.path.isdir(tmp_dir):
|
|
||||||
os.makedirs(tmp_dir, mode=0o700)
|
|
||||||
fn_parts = [self.ebics_config_id.ebics_host, self.ebics_config_id.ebics_partner]
|
fn_parts = [self.ebics_config_id.ebics_host, self.ebics_config_id.ebics_partner]
|
||||||
if docname:
|
if docname:
|
||||||
fn_parts.append(docname)
|
fn_parts.append(docname)
|
||||||
else:
|
else:
|
||||||
fn_date = self.date_to or fields.Date.today()
|
fn_date = self.date_to or fields.Date.today()
|
||||||
fn_parts.append(fn_date.isoformat())
|
fn_parts.append(fn_date.isoformat())
|
||||||
base_fn = "_".join(fn_parts)
|
fn = "_".join(fn_parts)
|
||||||
n = 1
|
|
||||||
full_tmp_fn = os.path.normpath(tmp_dir + "/" + base_fn)
|
|
||||||
while os.path.exists(full_tmp_fn):
|
|
||||||
n += 1
|
|
||||||
tmp_fn = base_fn + "_" + str(n).rjust(3, "0")
|
|
||||||
full_tmp_fn = os.path.normpath(tmp_dir + "/" + tmp_fn)
|
|
||||||
|
|
||||||
with open(full_tmp_fn, "wb") as f:
|
|
||||||
f.write(data)
|
|
||||||
|
|
||||||
ff_methods = self._file_format_methods()
|
ff_methods = self._file_format_methods()
|
||||||
if file_format.name in ff_methods:
|
if file_format.name in ff_methods:
|
||||||
data = ff_methods[file_format.name](data)
|
data = ff_methods[file_format.name](data)
|
||||||
|
|
||||||
fn = base_fn
|
|
||||||
suffix = file_format.suffix
|
suffix = file_format.suffix
|
||||||
if suffix and not fn.endswith(suffix):
|
if suffix and not fn.endswith(suffix):
|
||||||
fn = ".".join([fn, suffix])
|
fn = ".".join([fn, suffix])
|
||||||
|
Loading…
Reference in New Issue
Block a user