Skip to content
Extraits de code Groupes Projets
Valider 3a2eb7fb rédigé par Benjamin - Le Filament's avatar Benjamin - Le Filament
Parcourir les fichiers

[add] _set_ro_table function for views

parent 609e88f3
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
# © 2019 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import models
from . import res_company
from . import res_partner
from . import scop_month
# © 2022 Le Filament (<http://www.le-filament.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import logging
from psycopg2.extensions import AsIs
from odoo import models
_logger = logging.getLogger(__name__)
class BaseModelExtend(models.AbstractModel):
_inherit = "base"
def _set_ro_table(self):
"""
Affecte les droits de lecture seule à la table du modèle pour un utilisateur donné
"""
user_name = self.env["ir.config_parameter"].sudo().get_param("read.only.db.user")
if user_name:
self.env.cr.execute("SELECT 1 FROM pg_roles WHERE rolname=%s", (user_name,))
user_exists = self.env.cr.fetchall()
if user_exists:
self.env.cr.execute(
"GRANT SELECT ON %s TO %s", (AsIs(self._table), AsIs(user_name),))
_logger.info(
"Read access to %s on %s granted" % (user_name, self._table,)
)
else:
_logger.warning("Database user %s does not exists" % user_name)
else:
_logger.info("Read Only database user is not set")
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter