Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
1 Odpowiedz
1175 Widoki

Hello! I'm trying to restrict the user to see other modules and also other menus in attendance except the "Kiosk Mode" and if it could be automatically it would be great!


This is my security.xml file:

<odoo>
<data noupdate="1">
<!-- User Groups -->
<record id="group_attendance_admin" model="res.groups">
<field name="name">Attendance Admin</field>
<field name="category_id" ref="base.module_category_human_resources"/>
<field name="implied_ids" eval="[(4, ref('hr_attendance.group_hr_attendance_officer'))]"/>
</record>

<record id="group_attendance_user" model="res.groups">
<field name="name">Attendance User</field>
<field name="category_id" ref="base.module_category_human_resources"/>
</record>

<!-- Model Access Rights -->
<!-- Admin Access -->
<record id="access_attendance_admin" model="ir.model.access">
<field name="name">Access Attendance Admin</field>
<field name="model_id" ref="hr_attendance.model_hr_attendance"/>
<field name="group_id" ref="group_attendance_admin"/>
<field name="perm_read" eval="1"/>
<field name="perm_write" eval="1"/>
<field name="perm_create" eval="1"/>
<field name="perm_unlink" eval="1"/>
</record>

<!-- User Access -->
<record id="access_attendance_user" model="ir.model.access">
<field name="name">Access Attendance User</field>
<field name="model_id" ref="hr_attendance.model_hr_attendance"/>
<field name="group_id" ref="group_attendance_user"/>
<field name="perm_read" eval="1"/>
<field name="perm_write" eval="1"/>
<field name="perm_create" eval="1"/>
<field name="perm_unlink" eval="0"/>
</record>

<!-- Record Rules -->
<!-- Admin Rules - Full Access -->
<record id="rule_attendance_admin" model="ir.rule">
<field name="name">Attendance Admin Full Access</field>
<field name="model_id" ref="hr_attendance.model_hr_attendance"/>
<field name="groups" eval="[(4, ref('group_attendance_admin'))]"/>
<field name="domain_force">[]</field>
</record>

<!-- User Rules - Limited Access -->
<record id="rule_attendance_user" model="ir.rule">
<field name="name">Attendance User Own Records</field>
<field name="model_id" ref="hr_attendance.model_hr_attendance"/>
<field name="groups" eval="[(4, ref('group_attendance_user'))]"/>
<field name="domain_force">[('employee_id.user_id', '=', user.id)]</field>
</record>

<!-- Menu Access Rule -->
<record id="rule_menu_kiosk_only" model="ir.rule">
<field name="name">Only Kiosk Menu Access</field>
<field name="model_id" ref="base.model_ir_ui_menu"/>
<field name="groups" eval="[(4, ref('group_attendance_user'))]"/>
<field name="domain_force">[('id', '=', ref('hr_attendance.menu_hr_attendance_kiosk_mode'))]</field>
<field name="perm_read" eval="1"/>
<field name="perm_write" eval="1"/>
<field name="perm_create" eval="1"/>
<field name="perm_unlink" eval="0"/>
</record>

<!-- Model Access Restriction -->
<record id="rule_attendance_user_model_restriction" model="ir.rule">
<field name="name">Attendance User Model Restriction</field>
<field name="model_id" ref="base.model_ir_model_access"/>
<field name="groups" eval="[(4, ref('group_attendance_user'))]"/>
<field name="domain_force">[('model_id.model', 'in', ['hr.attendance'])]</field>
</record>
</data>
</odoo>

The error I'm having:


2024-12-22 19:22:29,267 22847 ERROR payroll odoo.sql_db: bad query: SELECT "ir_ui_menu"."id" FROM "ir_ui_menu" WHERE (("ir_ui_menu"."active" = true) AND "ir_ui_menu"."parent_id" IS NULL) AND ("ir_ui_menu"."id" = 'hr_attendance.menu_hr_attendance_kiosk_no_user_mode') ORDER BY "ir_ui_menu"."sequence"  , "ir_ui_menu"."id"  
ERROR: invalid input syntax for type integer: "hr_attendance.menu_hr_attendance_kiosk_no_user_mode"
LINE 1: ...nu"."parent_id" IS NULL) AND ("ir_ui_menu"."id" = 'hr_attend...

KeyError: ('ir.ui.menu', <function IrUiMenu.load_menus at 0x728f8e7f6160>, 7, '1', ('en_US',))


psycopg2.errors.InvalidTextRepresentation: invalid input syntax for type integer: "hr_attendance.menu_hr_attendance_kiosk_no_user_mode"
LINE 1: ...nu"."parent_id" IS NULL) AND ("ir_ui_menu"."id" = 'hr_attend...









Awatar
Odrzuć
Najlepsza odpowiedź

Why do some complicated ?
Odoo already has that feature, let say Marc Demo is not a admin,

Go to user -> Marc Demo -> Check the box Officer: Manage attendances. This option will let Marc Demo doesn't see the kiosk menu

Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
0
wrz 24
981
4
cze 25
2397
1
gru 24
2047
3
lip 25
1907
0
cze 25
326