diff --git a/base_group_backend/README.rst b/base_group_backend/README.rst
index a00d2b3bd..c77b5aeb4 100644
--- a/base_group_backend/README.rst
+++ b/base_group_backend/README.rst
@@ -7,7 +7,7 @@ Group backend
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! source digest: sha256:6aed3105c0a4c58cc34c910e88d34a68e14d38a8d549160bbc5b8f276320cda4
+ !! source digest: sha256:c7397d2b2e542e6918527090ab259d68f9d3b6a25386feccdc38002e51be4e31
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
diff --git a/base_group_backend/__manifest__.py b/base_group_backend/__manifest__.py
index cd445f0c8..cf03013e6 100644
--- a/base_group_backend/__manifest__.py
+++ b/base_group_backend/__manifest__.py
@@ -8,14 +8,21 @@
"license": "LGPL-3",
"maintainers": ["oca"],
"website": "https://github.com/OCA/server-backend",
- "depends": ["base", "mail"],
+ "depends": [
+ "base",
+ "base_install_request", # weird module, we need to survive with it
+ "mail",
+ ],
"demo": [
"demo/test-model.xml",
"demo/ir.model.access.csv",
"demo/backend_dummy_model.xml",
+ "demo/res_partners.xml",
+ "demo/res_users.xml",
],
"data": [
- "data/res-groups.xml",
+ "data/res_groups.xml",
+ "data/ir_ui_menu.xml",
"security/ir.model.access.csv",
],
"installable": True,
diff --git a/base_group_backend/data/ir_ui_menu.xml b/base_group_backend/data/ir_ui_menu.xml
new file mode 100644
index 000000000..a8a80e106
--- /dev/null
+++ b/base_group_backend/data/ir_ui_menu.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/base_group_backend/data/res-groups.xml b/base_group_backend/data/res-groups.xml
deleted file mode 100644
index eb3291e9b..000000000
--- a/base_group_backend/data/res-groups.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
- Backend user
-
-
- This group is used to gives user backend access.
-
- While users in `base.group_user` gets a lot of default access
- which makes hard to define properly records/rules/menu access.
-
- So for maintainability you shouldn't linked any access right, rules,
- menu, and so on to this group directly.
-
- The only intent of this groups is to be able to get a session
- to Odoo backend (`/web`).
-
-
-
diff --git a/base_group_backend/data/res_groups.xml b/base_group_backend/data/res_groups.xml
new file mode 100644
index 000000000..db3df0068
--- /dev/null
+++ b/base_group_backend/data/res_groups.xml
@@ -0,0 +1,43 @@
+
+
+
+ Backend user
+
+
+ This group is used to gives user backend access.
+
+ While users in `base.group_user` gets a lot of default access
+ which makes hard to define properly records/rules/menu access.
+
+ So for maintainability you shouldn't linked any access right, rules,
+ menu, and so on to this group directly.
+
+ The only intent of this groups is to be able to get a session
+ to Odoo backend (`/web`).
+
+
+
+
+ Backend UI user
+
+
+ This group is used to gives user basic ui access.
+
+
+
+
+
diff --git a/base_group_backend/demo/backend_dummy_model.py b/base_group_backend/demo/backend_dummy_model.py
index 561ef8119..649f22418 100644
--- a/base_group_backend/demo/backend_dummy_model.py
+++ b/base_group_backend/demo/backend_dummy_model.py
@@ -3,7 +3,6 @@
class BackendDummyModel(models.Model):
_name = "backend.dummy.model"
- _inherit = ["mail.activity.mixin"]
_description = "Backend Dummy Model demo"
my_value = fields.Char(name="Value", required=True)
diff --git a/base_group_backend/demo/backend_dummy_model.xml b/base_group_backend/demo/backend_dummy_model.xml
index 3af728dd1..ade0d44c0 100644
--- a/base_group_backend/demo/backend_dummy_model.xml
+++ b/base_group_backend/demo/backend_dummy_model.xml
@@ -1,13 +1,12 @@
-
-
+
Backend dummy tree view
backend.dummy.model
-
+
@@ -24,20 +23,20 @@
id="menu_dummy_root"
name="Dummy"
sequence="100"
- groups="group_backend,base.group_user"
+ groups="group_backend_ui_users,base.group_user"
/>
diff --git a/base_group_backend/demo/ir.model.access.csv b/base_group_backend/demo/ir.model.access.csv
index 95d560f98..6c353bcb6 100644
--- a/base_group_backend/demo/ir.model.access.csv
+++ b/base_group_backend/demo/ir.model.access.csv
@@ -1,3 +1,3 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"backend_dummy_models","backend dummy.model","model_backend_dummy_model",group_backend,1,0,0,0
+"backend_dummy_models","backend dummy.model","model_backend_dummy_model",group_backend_ui_users,1,0,0,0
"backend_dummy_models_user_grp","backend dummy.model user grp","model_backend_dummy_model",base.group_user,1,0,0,0
diff --git a/base_group_backend/demo/res_partners.xml b/base_group_backend/demo/res_partners.xml
new file mode 100644
index 000000000..32b455809
--- /dev/null
+++ b/base_group_backend/demo/res_partners.xml
@@ -0,0 +1,12 @@
+
+
+
+ Demo partner backend
+
+
+ Demo partner backend 1
+
+
+ Demo partner backend 2
+
+
diff --git a/base_group_backend/demo/res_users.xml b/base_group_backend/demo/res_users.xml
new file mode 100644
index 000000000..37baa44a6
--- /dev/null
+++ b/base_group_backend/demo/res_users.xml
@@ -0,0 +1,21 @@
+
+
+
+ demo backend user
+
+
+
+
+ demo backend user 1
+
+
+
+
+ demo backend user 2
+
+
+
+
diff --git a/base_group_backend/demo/test-model.xml b/base_group_backend/demo/test-model.xml
index 42caa5cc7..3ced409a7 100644
--- a/base_group_backend/demo/test-model.xml
+++ b/base_group_backend/demo/test-model.xml
@@ -1,8 +1,7 @@
-
-
+
+
hello
hello
-
diff --git a/base_group_backend/models/__init__.py b/base_group_backend/models/__init__.py
index beafab2fa..883516533 100644
--- a/base_group_backend/models/__init__.py
+++ b/base_group_backend/models/__init__.py
@@ -1,2 +1 @@
-from odoo.tools import config
from . import res_users
diff --git a/base_group_backend/models/res_users.py b/base_group_backend/models/res_users.py
index 8c456e5e6..87a6c2484 100644
--- a/base_group_backend/models/res_users.py
+++ b/base_group_backend/models/res_users.py
@@ -8,7 +8,6 @@
class Users(models.Model):
_inherit = "res.users"
- # TODO: (franz) make it clear why we test with "." group and why the share = True
@api.model
def has_group(self, group_ext_id):
"""While ensuring a user is part of `base.group_user` this code will
@@ -25,21 +24,27 @@ def has_group(self, group_ext_id):
res = super().has_group(group_ext_id)
if not res and (group_ext_id == "base.group_user"):
has_base_group_backend = super().has_group(
- "base_group_backend.group_backend"
- )
+ "base_group_backend.base_group_backend"
+ ) or super().has_group("base_group_backend.group_backend_ui_users")
if has_base_group_backend:
- _logger.warning("Forcing has_group to return True for group_backend")
+ _logger.warning(
+ "Forcing has_group to return True"
+ + " for group_backend and base_group_backend_ui_users"
+ )
return has_base_group_backend
return res
@api.depends("groups_id")
def _compute_share(self):
- user_group_id = self.env["ir.model.data"]._xmlid_to_res_id("base.group_user")
+ res = super()._compute_share()
backend_user_group_id = self.env["ir.model.data"]._xmlid_to_res_id(
- "base_group_backend.group_backend"
+ "base_group_backend.base_group_backend"
+ )
+ backend_ui_user_group_id = self.env["ir.model.data"]._xmlid_to_res_id(
+ "base_group_backend.group_backend_ui_users"
)
internal_users = self.filtered_domain(
- [("groups_id", "in", [user_group_id, backend_user_group_id])]
+ [("groups_id", "in", [backend_user_group_id, backend_ui_user_group_id])]
)
internal_users.share = False
- (self - internal_users).share = True
+ return res
diff --git a/base_group_backend/readme/ROADMAP.rst b/base_group_backend/readme/ROADMAP.rst
new file mode 100644
index 000000000..5190afe11
--- /dev/null
+++ b/base_group_backend/readme/ROADMAP.rst
@@ -0,0 +1,5 @@
+Current module depends on `base_install_request` instead of `base`.
+
+We don't need `base_install_request` auto install module but we must override it to set a security group on `App` menu.
+
+This dependency should be remove if possible in future versions.
diff --git a/base_group_backend/security/ir.model.access.csv b/base_group_backend/security/ir.model.access.csv
index c5b504a1d..1746a2398 100644
--- a/base_group_backend/security/ir.model.access.csv
+++ b/base_group_backend/security/ir.model.access.csv
@@ -1,13 +1,33 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-res_users_backend,backend user res.users,base.model_res_users,group_backend,1,0,0,0
-res_partner_backend,backend user res.partner,base.model_res_partner,group_backend,1,0,0,0
-ir_ui_menu_backend,backend user ir.ui.menu,base.model_ir_ui_menu,group_backend,1,0,0,0
-ir_filter_backend,backend user ir.filters,base.model_ir_filters,group_backend,1,1,1,1
-bus_presence_backend,backend user bus.presence,bus.model_bus_presence,group_backend,1,1,1,1
-mail_channel_member_backend,backend user mail.channel.member,mail.model_mail_channel_member,group_backend,1,1,1,0
-mail_channel_backend,backend user mail.group,mail.model_mail_channel,group_backend,1,1,1,0
-mail_notification_backend,backend user mail.notification,mail.model_mail_notification,group_backend,1,1,1,0
-mail_activity_backend,backend user mail.activity,mail.model_mail_activity,group_backend,1,1,1,1
-mail_activity_type_backend,backend user mail.activity.type,mail.model_mail_activity_type,group_backend,1,0,0,0
-ir_attachment_group_backend,backend user ir.attachment,base.model_ir_attachment,group_backend,1,0,0,0
-mail_followers_backend,backend user mail.followers,mail.model_mail_followers,group_backend,1,0,0,0
+backend_ui_users_ir_default,backend_ui_users_ir_default,base.model_ir_default,group_backend_ui_users,1,1,1,1
+backend_ui_users_ir_filters,backend_ui_users_ir_filters,base.model_ir_filters,group_backend_ui_users,1,1,1,1
+backend_ui_users_ir_model,backend_ui_users_ir_model,base.model_ir_model,group_backend_ui_users,1,0,0,0
+backend_ui_users_ir_model_fields,backend_ui_users_ir_model_fields,base.model_ir_model_fields,group_backend_ui_users,1,0,0,0
+backend_ui_users_ir_model_data,backend_ui_users_ir_model_data,base.model_ir_model_data,group_backend_ui_users,1,0,1,0
+backend_ui_users_ir_model_fields_selection,backend_ui_users_ir_model_fields_selection,base.model_ir_model_fields_selection,group_backend_ui_users,1,0,0,0
+backend_ui_users_ir_sequence,backend_ui_users_ir_sequence,base.model_ir_sequence,group_backend_ui_users,1,0,0,0
+backend_ui_users_ir_sequence_date_range,backend_ui_users_ir_sequence_date_range,base.model_ir_sequence_date_range,group_backend_ui_users,1,0,0,0
+backend_ui_users_ir_ui_menu,backend_ui_users_ir_ui_menu,base.model_ir_ui_menu,group_backend_ui_users,1,0,0,0
+backend_ui_users_ir_attachment,backend_ui_users_ir_attachment,base.model_ir_attachment,group_backend_ui_users,1,0,1,0
+backend_ui_users_res_partner,backend_ui_users_res_partner,base.model_res_partner,group_backend_ui_users,1,0,0,0
+backend_ui_users_bus_presence,backend_ui_users_bus_presence,bus.model_bus_presence,group_backend_ui_users,1,1,1,1
+backend_ui_users_mail_channel_member_public,backend_ui_users_mail_channel_member,mail.model_mail_channel_member,group_backend_ui_users,1,1,1,0
+backend_ui_users_mail_channel_public,backend_ui_users_mail_channel_member,mail.model_mail_channel,group_backend_ui_users,1,1,1,0
+backend_ui_users_mail_activity,backend_ui_users_mail_activity,mail.model_mail_activity,group_backend_ui_users,1,1,1,1
+backend_ui_users_mail_activity_type,backend_ui_users_mail_activity_type,mail.model_mail_activity_type,group_backend_ui_users,1,0,0,0
+backend_ui_users_mail_followers,backend_ui_users_mail_followers,mail.model_mail_followers,group_backend_ui_users,1,0,0,0
+backend_ui_users_mail_mail,backend_ui_users_mail_mail,mail.model_mail_mail,group_backend_ui_users,0,0,0,0
+backend_ui_users_mail_compose_message,backend_ui_users_mail_compose_message,mail.model_mail_compose_message,group_backend_ui_users,1,1,1,0
+backend_ui_users_mail_wizard_invite,backend_ui_users_mail_wizard_invite,mail.model_mail_wizard_invite,group_backend_ui_users,1,1,1,0
+backend_ui_users_mail_template,backend_ui_users_mail_template,mail.model_mail_template,group_backend_ui_users,1,0,0,0
+backend_ui_users_mail_template_preview,backend_ui_users_mail_template_preview,mail.model_mail_template_preview,group_backend_ui_users,1,0,0,0
+backend_ui_users_mail_message,backend_ui_users_mail_message,mail.model_mail_message,group_backend_ui_users,1,1,1,0
+backend_ui_users_mail_resend_message,backend_ui_users_mail_resend_message,mail.model_mail_resend_message,group_backend_ui_users,1,1,1,0
+backend_ui_users_mail_notification,backend_ui_users_mail_notification,mail.model_mail_notification,group_backend_ui_users,1,1,1,1
+backend_ui_users_mail_alias,backend_ui_users_mail_alias,mail.model_mail_alias,group_backend_ui_users,1,0,0,0
+backend_ui_users_res_groups,backend_ui_users_res_groups,base.model_res_groups,group_backend_ui_users,1,0,0,0
+backend_ui_users_res_partner_category,backend_ui_users_res_partner_category,base.model_res_partner_category,group_backend_ui_users,1,0,0,0
+backend_ui_users_res_partner_industry,backend_ui_users_res_partner_industry,base.model_res_partner_industry,group_backend_ui_users,1,0,0,0
+backend_ui_users_res_users_identitycheck,backend_ui_users_res_users_identitycheck,base.model_res_users_identitycheck,group_backend_ui_users,1,1,1,0
+backend_ui_users_res_bank,backend_ui_users_res_bank,base.model_res_bank,group_backend_ui_users,1,0,0,0
+backend_ui_users_res_partner_bank,backend_ui_users_res_partner_bank,base.model_res_partner_bank,group_backend_ui_users,1,0,0,0
diff --git a/base_group_backend/static/description/index.html b/base_group_backend/static/description/index.html
index 34383a765..ed78c3816 100644
--- a/base_group_backend/static/description/index.html
+++ b/base_group_backend/static/description/index.html
@@ -1,20 +1,20 @@
-
+
-
+
Group backend