Odoo is the world's easiest all-in-one management software. It includes hundreds of business apps:
CRM | e-Commerce | Accounting | Inventory | PoS | Project management | MRP | etc.
we need to split the contact , customers for each sales person so each sales person responsible of certain customers so the other sales man shouldn't see the other sales contacts or customers
You can do that rather easily with Access Rules, similarly to what is done by default for the "See Own Leads" group.
- Create a new group for your sales persons, or modify the existing "Sales User" group if you'd like this to apply to all of them.
- In the Rules tab of the group, click
Add, then choose
Createat the bottom of the pop-up.
Choose a name, then choose "Partner" as the object, then carefully copy/paste the following in the Rule Definition box:
- To test: login as a Sales User, who is not the Administrator (Access Rules do not apply for the Administrator)
Note: You need to enable the Technical Features access right for the administrator in order to perform these changes.
After setting the rule in Partner Object to ['|',('user_id','=',user.id),('user_id','=',False)], indeed a user cannot access anymore to the customers list of the other users.
But one problem is still remaining : when creating a new customer in Opportunities, if the user enters 2 or 3 letters (lets say "AB" for example) in the customer field then a list of customer names containing the string "AB" will appear. Then the user will be able to select a customer of the proposed list and see all the details of the contact by clicking on the square at the right of the field.
Does it exist a way to avoid that ?
I have tried creating a new group and adding the following rule ['|',('create_uid','=',user.id),'|', ('id','=',1),('id', '=', user.partner_id.id)] and it's working for me, I have used ('id','=',1) cause 1 is the id of the company he belongs to and the user should has access to this, for example if he wants to print pdf file and it has in the header information about the company. And I put also ('id', '=', user.partner_id.id) cause he need to get access to himself. I'm using version 9.
I have Odoo 9 installed. We need to restrict users to see each other's contacts. Everything works perfectly when I copy the code but I need to do some extra checks. As a sales rep I want to see all contact I created plus those that someone assigned to me (by choosing me in the Sales person field)
Still everything is fine in my contact list and customer list. As soon as I open the sales dashboard or pipeline, I get this error:
The requested operation cannot be completed due to security restrictions. Please contact your system administrator.
(Document type: res.users, Operation: read)
What am I missing here?
The suggested rule ['|',('user_id','=',user.id),('user_id','=',False)] restricts the user to see only contacts they are set as salesperson or contacts that have no salesperson. I prefer to restrict it to who created the user. to do that, replace the rule with [('create_uid','=',user.id)]
Apparently, this cannot currently be done in v7, though you can "split" leads, opportunities, quotations and sales order by setting the sales => "see own leads" access rights in the user form. But once the contacts are created in the db, everyone who has the necessary rights can see them.
About This Community
This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.Register
Odoo Training Center
Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.Test it now
|Asked: 2/11/13, 3:45 AM|
|Seen: 11135 times|
|Last updated: 11/2/17, 5:46 PM|