|
|
@ -2,7 +2,7 @@ |
|
|
|
# © 2016 Akretion Sebastien Beau |
|
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|
|
|
|
|
|
|
from odoo import models, fields |
|
|
|
from odoo import api, fields, models |
|
|
|
from odoo.tools.config import config |
|
|
|
|
|
|
|
|
|
|
@ -17,11 +17,15 @@ class KeychainBackend(models.AbstractModel): |
|
|
|
required=True) |
|
|
|
data = fields.Serialized( |
|
|
|
compute="_compute_keychain", |
|
|
|
inverse="_inverse_keychain") |
|
|
|
inverse="_inverse_keychain", |
|
|
|
help="Additionnal data as json") |
|
|
|
|
|
|
|
@api.multi |
|
|
|
def _get_technical_name(self): |
|
|
|
self.ensure_one() |
|
|
|
return '%s,%s' % (self._name, self.id) |
|
|
|
|
|
|
|
@api.multi |
|
|
|
def _get_existing_keychain(self): |
|
|
|
self.ensure_one() |
|
|
|
return self.env['keychain.account'].retrieve([ |
|
|
@ -29,7 +33,9 @@ class KeychainBackend(models.AbstractModel): |
|
|
|
('technical_name', '=', self._get_technical_name()) |
|
|
|
]) |
|
|
|
|
|
|
|
@api.multi |
|
|
|
def _prepare_keychain(self): |
|
|
|
self.ensure_one() |
|
|
|
env = config.get('running_env') |
|
|
|
return { |
|
|
|
'name': "%s %s" % (self.name, env), |
|
|
@ -38,6 +44,7 @@ class KeychainBackend(models.AbstractModel): |
|
|
|
'environment': env, |
|
|
|
} |
|
|
|
|
|
|
|
@api.multi |
|
|
|
def _get_keychain_account(self): |
|
|
|
self.ensure_one() |
|
|
|
account = self._get_existing_keychain() |
|
|
@ -46,12 +53,14 @@ class KeychainBackend(models.AbstractModel): |
|
|
|
account = self.env['keychain.account'].create(vals) |
|
|
|
return account |
|
|
|
|
|
|
|
@api.multi |
|
|
|
def _inverse_password(self): |
|
|
|
for record in self: |
|
|
|
account = self._get_keychain_account() |
|
|
|
if record.password and record.password != '******': |
|
|
|
account.clear_password = record.password |
|
|
|
|
|
|
|
@api.multi |
|
|
|
def _compute_password(self): |
|
|
|
for record in self: |
|
|
|
account = record._get_existing_keychain() |
|
|
@ -60,11 +69,13 @@ class KeychainBackend(models.AbstractModel): |
|
|
|
else: |
|
|
|
record.password = "" |
|
|
|
|
|
|
|
@api.multi |
|
|
|
def _inverse_keychain(self): |
|
|
|
for record in self: |
|
|
|
account = record._get_keychain_account() |
|
|
|
account.data = account._serialize_data(record.data) |
|
|
|
|
|
|
|
@api.multi |
|
|
|
def _compute_keychain(self): |
|
|
|
for record in self: |
|
|
|
account = record._get_existing_keychain() |
|
|
|