mirror of
https://github.com/bringout/oca-server-auth.git
synced 2026-04-19 10:52:02 +02:00
Initial commit: OCA Server Auth packages (29 packages)
This commit is contained in:
commit
3ed80311c4
1325 changed files with 127292 additions and 0 deletions
|
|
@ -0,0 +1,57 @@
|
|||
# © 2021 Florian Kantelberg - initOS GmbH
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
import logging
|
||||
|
||||
from odoo import _, api, fields, models
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class AbstractVaultField(models.AbstractModel):
|
||||
_name = "vault.abstract.field"
|
||||
_description = _("Abstract model to implement basic fields for encryption")
|
||||
|
||||
entry_id = fields.Many2one("vault.entry", ondelete="cascade", required=True)
|
||||
entry_name = fields.Char(related="entry_id.complete_name")
|
||||
vault_id = fields.Many2one(related="entry_id.vault_id")
|
||||
master_key = fields.Char(compute="_compute_master_key", store=False)
|
||||
|
||||
perm_user = fields.Many2one(related="vault_id.perm_user", store=False)
|
||||
allowed_read = fields.Boolean(related="vault_id.allowed_read", store=False)
|
||||
allowed_create = fields.Boolean(related="vault_id.allowed_create", store=False)
|
||||
allowed_write = fields.Boolean(related="vault_id.allowed_write", store=False)
|
||||
allowed_share = fields.Boolean(related="vault_id.allowed_share", store=False)
|
||||
allowed_delete = fields.Boolean(related="vault_id.allowed_delete", store=False)
|
||||
|
||||
name = fields.Char(required=True)
|
||||
iv = fields.Char()
|
||||
|
||||
@api.depends("entry_id.vault_id.master_key")
|
||||
def _compute_master_key(self):
|
||||
for rec in self:
|
||||
rec.master_key = rec.vault_id.master_key
|
||||
|
||||
def log_change(self, action):
|
||||
if self.env.context.get("vault_skip_log"):
|
||||
return
|
||||
|
||||
for rec in self:
|
||||
rec.entry_id.log_info(
|
||||
f"{action} value {rec.name} of {rec.entry_id.complete_name} "
|
||||
f"by {self.env.user.display_name}"
|
||||
)
|
||||
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
res = super().create(vals_list)
|
||||
res.log_change("Created")
|
||||
return res
|
||||
|
||||
def unlink(self):
|
||||
self.log_change("Deleted")
|
||||
return super().unlink()
|
||||
|
||||
def write(self, values):
|
||||
self.log_change("Changed")
|
||||
return super().write(values)
|
||||
Loading…
Add table
Add a link
Reference in a new issue