Skip to Content
Menu
This question has been flagged
3 Replies
9127 Views

Hi,

Recetly my online odoo is broken, so I create a database on my local computer. because the data is too much, I just don't want create it one-by-one. I export some main data from the old database(eg. res.partner, res.users, hr.employee) then import to the new database. when I use Admin account everything works good, but when I use other accounts some module just cant access, show the error "Document type: res.users, Operation: read", and some module can be accessed but some menu is not displayed, even I give it the admin rule,it still not work.At the first, I think it might I just didn't import some rule relation, Itry to create a new account to test it, it appears the same error. 

Anyone know what cause the error, help me to firgure it out, thx!

Avatar
Discard

Check the security groups assigned for "res.users"

Go to Settings --> models --> search for "res.users" the check which group assigned in access rights.

Author Best Answer

thanks gus, finally solve it. I import the into the table "res_company_users_rel", the error is gone. Perhaps the first time I create the user using an account without a company, so I track the error to the model.py finding the it execute follow sql

SELECT "res_users"."id" as "id","res_users"."active" as "active","res_users"."company_id" as "company_id","res_users"."notification_type" as "notification_type","res_users"."create_uid" as "create_uid","res_users"."write_date" as "write_date","res_users"."login" as "login","res_users"."sale_team_id" as "sale_team_id","res_users"."password_crypt" as "password_crypt","res_users"."share" as "share","res_users"."write_uid" as "write_uid","res_users"."create_date" as "create_date","res_users"."action_id" as "action_id","res_users"."password" as "password","res_users"."signature" as "signature","res_users"."alias_id" as "alias_id","res_users"."partner_id" as "partner_id" FROM "res_users" WHERE "res_users".id IN %s AND ("res_users"."id" in (SELECT "user_id" FROM "res_company_users_rel" WHERE "cid" IN %s))

And in res_users.py the company_ids is related to current user's company id
@api.model
def _get_company(self):
return self.env.user.company_id

# Special behavior for this field: res.company.search() will only return the companies
# available to the current user (should be the user's companies?), when the user_preference
# context is set.
company_id = fields.Many2one('res.company', string='Company', required=True, default=_get_company,
help='The company this user is currently working for.', context={'user_preference': True})
company_ids = fields.Many2many('res.company', 'res_company_users_rel', 'user_id', 'cid',
string='Companies', default=_get_company)

I still don't have any idea why the company_id can influence the res.users access

Avatar
Discard
Best Answer

Hi,

The error says that the logged in user group have not enough permission to view the records. Here the record is Users( res.users), for the currently logged in user group, there is no permission to read the above model.


So what you have to do is that, activate the developer mode and navigate to Settings->Technical -> Security -> Access rights/ records rules, here you can see the access rights set. Search the rules set to your user group or for the model res.users and grand the permission for read operation.


Thanks

Avatar
Discard