mirror of
https://github.com/OCA/server-backend.git
synced 2025-02-18 09:52:42 +02:00
[MIG] base_user_role_profile: Migration to 14.0
This commit is contained in:
@@ -1 +1,2 @@
|
|||||||
from . import models
|
from . import models
|
||||||
|
from .hooks import post_init_hook
|
||||||
|
|||||||
@@ -2,12 +2,13 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
"name": "User profiles",
|
"name": "User profiles",
|
||||||
"version": "12.0.1.0.0",
|
"version": "14.0.1.0.0",
|
||||||
"category": "Tools",
|
"category": "Tools",
|
||||||
"author": "Akretion, Odoo Community Association (OCA)",
|
"author": "Akretion, Odoo Community Association (OCA)",
|
||||||
"license": "AGPL-3",
|
"license": "AGPL-3",
|
||||||
"website": "https://github.com/OCA/server-backend",
|
"website": "https://github.com/OCA/server-backend",
|
||||||
"depends": ["base_user_role", "web"],
|
"depends": ["base_user_role", "web"],
|
||||||
|
"post_init_hook": "post_init_hook",
|
||||||
"data": [
|
"data": [
|
||||||
"data/data.xml",
|
"data/data.xml",
|
||||||
"security/ir.model.access.csv",
|
"security/ir.model.access.csv",
|
||||||
|
|||||||
12
base_user_role_profile/hooks.py
Normal file
12
base_user_role_profile/hooks.py
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# Copyright 2020 Akretion (https://www.akretion.com).
|
||||||
|
# @author Pierrick Brun <pierrick.brun@akretion.com>
|
||||||
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
|
from odoo import SUPERUSER_ID, api
|
||||||
|
|
||||||
|
|
||||||
|
def post_init_hook(cr, registry):
|
||||||
|
env = api.Environment(cr, SUPERUSER_ID, {})
|
||||||
|
env["res.users"].search([("profile_id", "=", False)]).profile_id = env.ref(
|
||||||
|
"base_user_role_profile.default_profile"
|
||||||
|
)
|
||||||
@@ -6,12 +6,14 @@ class ResUsers(models.Model):
|
|||||||
_inherit = "res.users"
|
_inherit = "res.users"
|
||||||
|
|
||||||
def _get_default_profile(self):
|
def _get_default_profile(self):
|
||||||
return self.env.ref("base_user_role_profile.default_profile")
|
return self.env.ref(
|
||||||
|
"base_user_role_profile.default_profile", raise_if_not_found=False
|
||||||
|
)
|
||||||
|
|
||||||
profile_id = fields.Many2one(
|
profile_id = fields.Many2one(
|
||||||
"res.users.profile",
|
"res.users.profile",
|
||||||
"Current profile",
|
"Current profile",
|
||||||
default=lambda self: self._get_default_profile,
|
default=lambda self: self._get_default_profile(),
|
||||||
)
|
)
|
||||||
|
|
||||||
profile_ids = fields.Many2many(
|
profile_ids = fields.Many2many(
|
||||||
@@ -53,15 +55,15 @@ class ResUsers(models.Model):
|
|||||||
self.sudo()._compute_profile_ids()
|
self.sudo()._compute_profile_ids()
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def _get_applicable_roles(self):
|
def _get_enabled_roles(self):
|
||||||
res = super()._get_applicable_roles()
|
res = super()._get_enabled_roles()
|
||||||
res = res.filtered(
|
res = res.filtered(
|
||||||
lambda r: not r.profile_id or (r.profile_id.id == r.user_id.profile_id.id)
|
lambda r: not r.profile_id or (r.profile_id.id == r.user_id.profile_id.id)
|
||||||
)
|
)
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def _update_profile_id(self):
|
def _update_profile_id(self):
|
||||||
default_profile = self.env.ref("base_user_role_profile.default_profile")
|
default_profile = self._get_default_profile()
|
||||||
if not self.profile_ids:
|
if not self.profile_ids:
|
||||||
if self.profile_id != default_profile:
|
if self.profile_id != default_profile:
|
||||||
self.profile_id = default_profile
|
self.profile_id = default_profile
|
||||||
|
|||||||
@@ -31,7 +31,6 @@
|
|||||||
<field name="name">User Profiles</field>
|
<field name="name">User Profiles</field>
|
||||||
<field name="type">ir.actions.act_window</field>
|
<field name="type">ir.actions.act_window</field>
|
||||||
<field name="res_model">res.users.profile</field>
|
<field name="res_model">res.users.profile</field>
|
||||||
<field name="view_type">form</field>
|
|
||||||
<field name="view_id" ref="view_res_users_profile_tree" />
|
<field name="view_id" ref="view_res_users_profile_tree" />
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user