mirror of
				https://github.com/brain-tec/account_ebics.git
				synced 2025-11-03 22:50:59 +00:00 
			
		
		
		
	Merge pull request #96 from Noviat/16-ebics-userid-limit-transaction-rights
[16.0][IMP] ebics_userid : add option to limit transaction rights to download or upload
This commit is contained in:
		@@ -3,7 +3,7 @@
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    "name": "EBICS banking protocol",
 | 
			
		||||
    "version": "16.0.1.2.0",
 | 
			
		||||
    "version": "16.0.1.3.0",
 | 
			
		||||
    "license": "LGPL-3",
 | 
			
		||||
    "author": "Noviat",
 | 
			
		||||
    "website": "https://www.noviat.com",
 | 
			
		||||
 
 | 
			
		||||
@@ -84,6 +84,18 @@ class EbicsUserID(models.Model):
 | 
			
		||||
        "This default can be overriden for specific "
 | 
			
		||||
        "EBICS transactions (cf. File Formats).",
 | 
			
		||||
    )
 | 
			
		||||
    transaction_rights = fields.Selection(
 | 
			
		||||
        selection=[
 | 
			
		||||
            ("both", "Download and Upload"),
 | 
			
		||||
            ("down", "Download Only"),
 | 
			
		||||
            ("up", "Upload Only"),
 | 
			
		||||
        ],
 | 
			
		||||
        string="Allowed Transactions",
 | 
			
		||||
        default="both",
 | 
			
		||||
        required=True,
 | 
			
		||||
        help="Use this parameter to limit the transactions for this User "
 | 
			
		||||
        "to downloads or uploads.",
 | 
			
		||||
    )
 | 
			
		||||
    ebics_keys_fn = fields.Char(compute="_compute_ebics_keys_fn")
 | 
			
		||||
    ebics_keys_found = fields.Boolean(compute="_compute_ebics_keys_found")
 | 
			
		||||
    ebics_passphrase = fields.Char(string="EBICS Passphrase")
 | 
			
		||||
 
 | 
			
		||||
@@ -94,6 +94,7 @@
 | 
			
		||||
                            attrs="{'required': [('ebics_passphrase_store', '=', True)], 'invisible': [('state', '!=', 'draft')]}"
 | 
			
		||||
                        />
 | 
			
		||||
            <field name="ebics_passphrase_store" />
 | 
			
		||||
            <field name="transaction_rights" />
 | 
			
		||||
            <field name="active" />
 | 
			
		||||
          </group>
 | 
			
		||||
          <group name="main-right">
 | 
			
		||||
 
 | 
			
		||||
@@ -113,29 +113,40 @@ class EbicsXfer(models.TransientModel):
 | 
			
		||||
 | 
			
		||||
    @api.onchange("ebics_config_id")
 | 
			
		||||
    def _onchange_ebics_config_id(self):
 | 
			
		||||
        ebics_userids = self.ebics_config_id.ebics_userid_ids
 | 
			
		||||
        if self.env.context.get("ebics_download"):
 | 
			
		||||
            download_formats = self.ebics_config_id.ebics_file_format_ids.filtered(
 | 
			
		||||
        avail_userids = self.ebics_config_id.ebics_userid_ids.filtered(
 | 
			
		||||
            lambda r: self.env.user.id in r.user_ids.ids
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        if self.env.context.get("ebics_download"):  # Download Form
 | 
			
		||||
            avail_formats = self.ebics_config_id.ebics_file_format_ids.filtered(
 | 
			
		||||
                lambda r: r.type == "down"
 | 
			
		||||
            )
 | 
			
		||||
            if len(download_formats) == 1:
 | 
			
		||||
                self.format_id = download_formats
 | 
			
		||||
            if len(ebics_userids) == 1:
 | 
			
		||||
                self.ebics_userid_id = ebics_userids
 | 
			
		||||
            else:
 | 
			
		||||
                transport_users = ebics_userids.filtered(
 | 
			
		||||
                    lambda r: r.signature_class == "T"
 | 
			
		||||
                )
 | 
			
		||||
                if len(transport_users) == 1:
 | 
			
		||||
                    self.ebics_userid_id = transport_users
 | 
			
		||||
        else:
 | 
			
		||||
            upload_formats = self.ebics_config_id.ebics_file_format_ids.filtered(
 | 
			
		||||
            avail_userids = avail_userids.filtered(
 | 
			
		||||
                lambda r: r.transaction_rights in ["both", "down"]
 | 
			
		||||
            )
 | 
			
		||||
        else:  # Upload Form
 | 
			
		||||
            avail_formats = self.ebics_config_id.ebics_file_format_ids.filtered(
 | 
			
		||||
                lambda r: r.type == "up"
 | 
			
		||||
            )
 | 
			
		||||
            if len(upload_formats) == 1:
 | 
			
		||||
                self.format_id = upload_formats
 | 
			
		||||
            if len(ebics_userids) == 1:
 | 
			
		||||
                self.ebics_userid_id = ebics_userids
 | 
			
		||||
            avail_userids = avail_userids.filtered(
 | 
			
		||||
                lambda r: r.transaction_rights in ["both", "up"]
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
        if avail_formats and len(avail_formats) == 1:
 | 
			
		||||
            self.format_id = avail_formats
 | 
			
		||||
        else:
 | 
			
		||||
            self.format_id = False
 | 
			
		||||
        if avail_userids:
 | 
			
		||||
            if len(avail_userids) == 1:
 | 
			
		||||
                self.ebics_userid_id = avail_userids
 | 
			
		||||
            else:
 | 
			
		||||
                with_passphrs_userids = avail_userids.filtered(
 | 
			
		||||
                    lambda r: r.ebics_passphrase_store
 | 
			
		||||
                )
 | 
			
		||||
                if len(with_passphrs_userids) == 1:
 | 
			
		||||
                    self.ebics_userid_id = with_passphrs_userids
 | 
			
		||||
        else:
 | 
			
		||||
            self.ebics_userid_id = False
 | 
			
		||||
 | 
			
		||||
    @api.onchange("upload_data")
 | 
			
		||||
    def _onchange_upload_data(self):
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@
 | 
			
		||||
                    />
 | 
			
		||||
          <field
 | 
			
		||||
                        name="ebics_userid_id"
 | 
			
		||||
                        domain="[('ebics_config_id', '=', ebics_config_id)]"
 | 
			
		||||
                        domain="[('ebics_config_id', '=', ebics_config_id), ('user_ids.id', '=', uid), ('transaction_rights', 'in', ['both', 'down'])]"
 | 
			
		||||
                        required="1"
 | 
			
		||||
                        options="{'no_create': True, 'no_open': True}"
 | 
			
		||||
                    />
 | 
			
		||||
@@ -69,7 +69,7 @@
 | 
			
		||||
                    />
 | 
			
		||||
          <field
 | 
			
		||||
                        name="ebics_userid_id"
 | 
			
		||||
                        domain="[('ebics_config_id', '=', ebics_config_id)]"
 | 
			
		||||
                        domain="[('ebics_config_id', '=', ebics_config_id), ('user_ids.id', '=', uid), ('transaction_rights', 'in', ['both', 'up'])]"
 | 
			
		||||
                        required="1"
 | 
			
		||||
                        options="{'no_create': True, 'no_open': True}"
 | 
			
		||||
                    />
 | 
			
		||||
@@ -143,7 +143,7 @@
 | 
			
		||||
  </record>
 | 
			
		||||
 | 
			
		||||
  <record id="ebics_xfer_action_download" model="ir.actions.act_window">
 | 
			
		||||
    <field name="name">EBICS File Transfer</field>
 | 
			
		||||
    <field name="name">EBICS File Transfer - Download</field>
 | 
			
		||||
    <field name="type">ir.actions.act_window</field>
 | 
			
		||||
    <field name="res_model">ebics.xfer</field>
 | 
			
		||||
    <field name="view_mode">form</field>
 | 
			
		||||
@@ -153,7 +153,7 @@
 | 
			
		||||
  </record>
 | 
			
		||||
 | 
			
		||||
  <record id="ebics_xfer_action_upload" model="ir.actions.act_window">
 | 
			
		||||
    <field name="name">EBICS File Transfer</field>
 | 
			
		||||
    <field name="name">EBICS File Transfer - Upload</field>
 | 
			
		||||
    <field name="type">ir.actions.act_window</field>
 | 
			
		||||
    <field name="res_model">ebics.xfer</field>
 | 
			
		||||
    <field name="view_mode">form</field>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user