diff --git a/hide_menu_user/__manifest__.py b/hide_menu_user/__manifest__.py
index 49cc3ec6b..2a3001805 100644
--- a/hide_menu_user/__manifest__.py
+++ b/hide_menu_user/__manifest__.py
@@ -31,7 +31,6 @@
'website': "https://www.cybrosys.com",
'depends': ['base'],
'data': [
- 'security/security.xml',
'views/res_users_views.xml',
],
'license': 'LGPL-3',
diff --git a/hide_menu_user/models/res_users.py b/hide_menu_user/models/res_users.py
index fe33da246..babebf142 100644
--- a/hide_menu_user/models/res_users.py
+++ b/hide_menu_user/models/res_users.py
@@ -19,7 +19,8 @@
# If not, see .
#
#############################################################################
-from odoo import fields, models
+
+from odoo import fields, models, api
class ResUsers(models.Model):
@@ -29,24 +30,21 @@ class ResUsers(models.Model):
_inherit = 'res.users'
def write(self, vals):
- """
- Write method for the ResUsers model.
- Ensure the menu will not remain hidden after removing it from the list.
- """
- res = super(ResUsers, self).write(vals)
+ # Store old hide_menu_ids per record
+ old_hide_menu_map = {record.id: record.hide_menu_ids for record in self}
+ res = super().write(vals)
for record in self:
+ old_hide_menu_ids = old_hide_menu_map.get(record.id,
+ self.env['ir.ui.menu'])
+
+ # Add new restrictions
for menu in record.hide_menu_ids:
- menu.write({
- 'restrict_user_ids': [fields.Command.link(record.id)]
- })
- # Handle unlinked menus (removed from hide_menu_ids)
- previous_menus = self.env['ir.ui.menu'].search(
- [('restrict_user_ids', 'in', [record.id])])
- removed_menus = previous_menus - record.hide_menu_ids
+ menu.sudo().write({'restrict_user_ids': [(4, record.id)]})
+
+ # Remove old ones that are no longer selected
+ removed_menus = old_hide_menu_ids - record.hide_menu_ids
for menu in removed_menus:
- menu.write({
- 'restrict_user_ids': [fields.Command.unlink(record.id)]
- })
+ menu.sudo().write({'restrict_user_ids': [(3, record.id)]})
return res
def _get_is_admin(self):
@@ -63,11 +61,10 @@ class ResUsers(models.Model):
'ir.ui.menu', string="Hidden Menu",
store=True, help='Select menu items that need to '
'be hidden to this user.')
- is_admin = fields.Boolean(compute=_get_is_admin, string="Is Admin",
+ is_admin = fields.Boolean(compute='_get_is_admin', string="Is Admin",
help='Check if the user is an admin.')
-
class IrUiMenu(models.Model):
"""
Model to restrict the menu for specific users.
@@ -77,3 +74,18 @@ class IrUiMenu(models.Model):
restrict_user_ids = fields.Many2many(
'res.users', string="Restricted Users",
help='Users restricted from accessing this menu.')
+
+ @api.returns('self')
+ def _filter_visible_menus(self):
+ """
+ Override to filter out menus restricted for current user.
+ Applies only to the current user context.
+ """
+ menus = super()._filter_visible_menus()
+
+ # Allow system admin to see everything
+ if self.env.user.has_group('base.group_system'):
+ return menus
+
+ return menus.filtered(
+ lambda m: self.env.user not in m.restrict_user_ids)
diff --git a/hide_menu_user/security/security.xml b/hide_menu_user/security/security.xml
deleted file mode 100644
index 3b2e10cf3..000000000
--- a/hide_menu_user/security/security.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
diff --git a/hide_menu_user/static/description/assets/icons/logo.png b/hide_menu_user/static/description/assets/icons/logo.png
new file mode 100644
index 000000000..478462d3e
Binary files /dev/null and b/hide_menu_user/static/description/assets/icons/logo.png differ
diff --git a/hide_menu_user/static/description/assets/misc/categories.png b/hide_menu_user/static/description/assets/misc/categories.png
new file mode 100644
index 000000000..bedf1e0b1
Binary files /dev/null and b/hide_menu_user/static/description/assets/misc/categories.png differ
diff --git a/hide_menu_user/static/description/assets/misc/check-box.png b/hide_menu_user/static/description/assets/misc/check-box.png
new file mode 100644
index 000000000..42caf24b9
Binary files /dev/null and b/hide_menu_user/static/description/assets/misc/check-box.png differ
diff --git a/hide_menu_user/static/description/assets/misc/compass.png b/hide_menu_user/static/description/assets/misc/compass.png
new file mode 100644
index 000000000..d5fed8faa
Binary files /dev/null and b/hide_menu_user/static/description/assets/misc/compass.png differ
diff --git a/hide_menu_user/static/description/assets/misc/corporate.png b/hide_menu_user/static/description/assets/misc/corporate.png
new file mode 100644
index 000000000..2eb13edbf
Binary files /dev/null and b/hide_menu_user/static/description/assets/misc/corporate.png differ
diff --git a/hide_menu_user/static/description/assets/misc/customer-support.png b/hide_menu_user/static/description/assets/misc/customer-support.png
new file mode 100644
index 000000000..79efc72ed
Binary files /dev/null and b/hide_menu_user/static/description/assets/misc/customer-support.png differ
diff --git a/hide_menu_user/static/description/assets/misc/cybrosys-logo.png b/hide_menu_user/static/description/assets/misc/cybrosys-logo.png
new file mode 100644
index 000000000..cc3cc0ccf
Binary files /dev/null and b/hide_menu_user/static/description/assets/misc/cybrosys-logo.png differ
diff --git a/hide_menu_user/static/description/assets/misc/features.png b/hide_menu_user/static/description/assets/misc/features.png
new file mode 100644
index 000000000..b41769f77
Binary files /dev/null and b/hide_menu_user/static/description/assets/misc/features.png differ
diff --git a/hide_menu_user/static/description/assets/misc/logo.png b/hide_menu_user/static/description/assets/misc/logo.png
new file mode 100644
index 000000000..478462d3e
Binary files /dev/null and b/hide_menu_user/static/description/assets/misc/logo.png differ
diff --git a/hide_menu_user/static/description/assets/misc/pictures.png b/hide_menu_user/static/description/assets/misc/pictures.png
new file mode 100644
index 000000000..56d255fe9
Binary files /dev/null and b/hide_menu_user/static/description/assets/misc/pictures.png differ
diff --git a/hide_menu_user/static/description/assets/misc/pie-chart.png b/hide_menu_user/static/description/assets/misc/pie-chart.png
new file mode 100644
index 000000000..426e05244
Binary files /dev/null and b/hide_menu_user/static/description/assets/misc/pie-chart.png differ
diff --git a/hide_menu_user/static/description/assets/misc/right-arrow.png b/hide_menu_user/static/description/assets/misc/right-arrow.png
new file mode 100644
index 000000000..730984a06
Binary files /dev/null and b/hide_menu_user/static/description/assets/misc/right-arrow.png differ
diff --git a/hide_menu_user/static/description/assets/misc/star.png b/hide_menu_user/static/description/assets/misc/star.png
new file mode 100644
index 000000000..2eb9ab29f
Binary files /dev/null and b/hide_menu_user/static/description/assets/misc/star.png differ
diff --git a/hide_menu_user/static/description/assets/misc/support.png b/hide_menu_user/static/description/assets/misc/support.png
new file mode 100644
index 000000000..4f18b8b82
Binary files /dev/null and b/hide_menu_user/static/description/assets/misc/support.png differ
diff --git a/hide_menu_user/static/description/assets/misc/whatsapp.png b/hide_menu_user/static/description/assets/misc/whatsapp.png
new file mode 100644
index 000000000..d513a5356
Binary files /dev/null and b/hide_menu_user/static/description/assets/misc/whatsapp.png differ
diff --git a/hide_menu_user/static/description/assets/modules/budget_image.png b/hide_menu_user/static/description/assets/modules/budget_image.png
new file mode 100644
index 000000000..b50130c7d
Binary files /dev/null and b/hide_menu_user/static/description/assets/modules/budget_image.png differ
diff --git a/hide_menu_user/static/description/assets/modules/credit_image.png b/hide_menu_user/static/description/assets/modules/credit_image.png
new file mode 100644
index 000000000..3ad04ecfd
Binary files /dev/null and b/hide_menu_user/static/description/assets/modules/credit_image.png differ
diff --git a/hide_menu_user/static/description/assets/modules/employee_image.png b/hide_menu_user/static/description/assets/modules/employee_image.png
new file mode 100644
index 000000000..30ad58232
Binary files /dev/null and b/hide_menu_user/static/description/assets/modules/employee_image.png differ
diff --git a/hide_menu_user/static/description/assets/modules/export_image.png b/hide_menu_user/static/description/assets/modules/export_image.png
new file mode 100644
index 000000000..492980ad0
Binary files /dev/null and b/hide_menu_user/static/description/assets/modules/export_image.png differ
diff --git a/hide_menu_user/static/description/assets/modules/gantt_image.png b/hide_menu_user/static/description/assets/modules/gantt_image.png
new file mode 100644
index 000000000..1ae7cfe3b
Binary files /dev/null and b/hide_menu_user/static/description/assets/modules/gantt_image.png differ
diff --git a/hide_menu_user/static/description/assets/modules/quotation_image.png b/hide_menu_user/static/description/assets/modules/quotation_image.png
new file mode 100644
index 000000000..499b1a72f
Binary files /dev/null and b/hide_menu_user/static/description/assets/modules/quotation_image.png differ
diff --git a/hide_menu_user/static/description/assets/screenshots/hero.gif b/hide_menu_user/static/description/assets/screenshots/hero.gif
new file mode 100644
index 000000000..948c0e472
Binary files /dev/null and b/hide_menu_user/static/description/assets/screenshots/hero.gif differ
diff --git a/hide_menu_user/static/description/assets/screenshots/screenshot-1.png b/hide_menu_user/static/description/assets/screenshots/screenshot-1.png
new file mode 100644
index 000000000..5c466fa16
Binary files /dev/null and b/hide_menu_user/static/description/assets/screenshots/screenshot-1.png differ
diff --git a/hide_menu_user/static/description/assets/screenshots/screenshot-2.png b/hide_menu_user/static/description/assets/screenshots/screenshot-2.png
new file mode 100644
index 000000000..7c3278324
Binary files /dev/null and b/hide_menu_user/static/description/assets/screenshots/screenshot-2.png differ
diff --git a/hide_menu_user/static/description/assets/screenshots/screenshot-3.png b/hide_menu_user/static/description/assets/screenshots/screenshot-3.png
new file mode 100644
index 000000000..ec1802327
Binary files /dev/null and b/hide_menu_user/static/description/assets/screenshots/screenshot-3.png differ
diff --git a/hide_menu_user/static/description/assets/screenshots/screenshot-4.png b/hide_menu_user/static/description/assets/screenshots/screenshot-4.png
new file mode 100644
index 000000000..e9611414e
Binary files /dev/null and b/hide_menu_user/static/description/assets/screenshots/screenshot-4.png differ
diff --git a/hide_menu_user/static/description/banner.png b/hide_menu_user/static/description/banner.png
new file mode 100644
index 000000000..2c8fbb83f
Binary files /dev/null and b/hide_menu_user/static/description/banner.png differ
diff --git a/hide_menu_user/views/res_users_views.xml b/hide_menu_user/views/res_users_views.xml
index ef26d4622..0bb0613c0 100644
--- a/hide_menu_user/views/res_users_views.xml
+++ b/hide_menu_user/views/res_users_views.xml
@@ -33,4 +33,4 @@
-
\ No newline at end of file
+