Ir al contenido
Menú
Se marcó esta pregunta
4 Respuestas
9996 Vistas

All I want is that each employee accessing module Employee in odoo just can see their own record, not others' records.

I have a solution where employee can see all records of other employees, but can't edit them - just their own records. I create new record rule in Settings > Technical > Security > Record Rules to do this solution

But this is not what I want :(

Any solution for my problem, please?

Avatar
Descartar
Mejor respuesta

Hey Lao Thai ,


You can try this in record rule i think it's help you [('user_id','=',user.id)]

Avatar
Descartar

These is the perfect answer for such a question

Autor Mejor respuesta

Hi Manish Bohra,

I've tried but this just help me with see all employee and edit own record, not record's other. Employee can see all record, it's not true at all. So any suggest more for me, sir?


And hi Ibrahim, 

What about file csv, I 've tried but this give me an error like this

Exception: Module loading Quy_Trinh_Du_An failed: file Quy_Trinh_Du_An\security/ir.model.access.csv could not be processed: No matching record found for external id 'model_hr_employee' in field 'Object'

Missing required value for the field 'Object' (model_id)

Any Idea?


I'm sorry, i don't have enough karma to answer each answer.

Avatar
Descartar

Hi LaeThai,

what is the name of your model ? i just mentioned model_hr_employee for an example.

in csv file:

access_model_x_id,access_model_x,model_YOUR_MODDEL_Name,base.group_user,1,1,0,0

Mejor respuesta

Try :

<record id="rule_case_RU_employes" model="ir.rule">

        <field name="name">RU Employes</field>

        <field name="model_id" ref="model_Your_MODEL"/>      // model_hr_employee ?

        <field name="global" eval="False"/>

        <field name="groups" eval="[(4, ref('base.group_user'))]"/>

        <field name="perm_read" eval="True"/>

        <field name="perm_write" eval="True"/>

        <field name="perm_create" eval="False"/>

        <field name="perm_unlink" eval="False"/>

        <field name="domain_force"> [('create_uid', '=', uid)] </field>

    </record>


Avatar
Descartar

Hello Ibrahim,

[('create_uid', '=', uid)] this domain will not work, because some times manager or admin will create an employee.

managers/admin should create an employee

Mejor respuesta

Yes, we can do it by record rules

[('user_id','=',user.id)]

Note : By using above record rule user can see only mapped employee details, use this record rule for employee group and manager group have domain [(1,'=',1)]

Avatar
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
1
ago 19
2708
0
dic 18
3234
1
mar 22
12982
1
jun 21
6398
2
dic 19
2901