Odoo Construction Module Access Rights - dealwallet1/tsssinfotech_docs GitHub Wiki

Odoo Construction Module – User Roles & Access Rights

This document serves as a comprehensive guide to configuring user roles and access rights in the custom Odoo Construction module, designed to help administrators quickly and effectively manage permissions without needing to write code.

📚 Reference: Odoo 18.0 Access Rights Documentation


👥 User Role Overview

Role Responsibility Key Permissions Summary
Project Manager Oversees full project lifecycle Full access to projects, BoQs, tasks, limited HR/Vendors
Site Manager Executes and monitors site-level work Task updates, attendance, material request visibility
Vendor Supplies materials, external workforce Access to RFQs, POs, invoices only
Customer End-client who monitors progress and invoices Read-only access to own data
Project Engineer Manages project execution and coordinates teams Full project/task access, limited HR/Accounting
Site Engineer Tracks progress, logs timesheets on-site Access to tasks, planning, documents only

Use portal links or embedded forms to give access.


🛒 Vendor

Responsibilities: Respond to RFQs, send invoices and delivery.

Group: Construction / Vendor

  • Access to own POs, RFQs

  • Upload invoices


🛠️ Field-Level Customizations

🎯 Filter Vendor Field in Purchase Orders

Objective: Only show vendors (not all contacts) in partner_id field.

Steps (Studio):

  1. Go to Purchase → Create/Edit PO

  2. Click Studio (🛠️)

  3. Click on Vendor field

  4. Set Domain:

    [('supplier_rank', '>', 0)]
    

🎯 Restrict Task Assignee to Employees

Steps:

  1. Go to Project → Task Form → Studio

  2. Click on Assignee field (user_id or partner_id)

  3. Apply Domain:

    [('employee_id', '!=', False)]
    

🧑‍💼 Add Employee Column in User List View

Steps:

  1. Go to Settings → Users

  2. Switch to List View → Studio

  3. Add field: employee_id

  4. Save and close Studio

Result: Easily see which user is linked to which employee.


🔗 Create and Link Employee from User

Steps:

  1. Go to: Settings → Users

  2. Open a User → Click Create Employee (top right)

  3. System auto-links employee and user

Use Case: Enables assignment to tasks, planning, etc.


✅ Summary

Proper role setup in the Construction module ensures:

  • Clean separation of duties

  • Improved security and accountability

  • Streamlined workflows across internal and external stakeholders

All configurations can be completed via Odoo Studio and the admin UI — no technical knowledge or development is required.

✨ Tip: Always test new role permissions using test users to validate access before assigning to real users.

# Odoo Construction Module – User Roles & Access Rights

This document serves as a comprehensive guide to configuring user roles and access rights in the custom Odoo Construction module, designed to help administrators quickly and effectively manage permissions without needing to write code.

📚 Reference: [Odoo 18.0 Access Rights Documentation](https://www.odoo.com/documentation/18.0/applications/general/users/access_rights.html)


👥 User Role Overview

Role Responsibility Key Permissions Summary
Project Manager Oversees full project lifecycle Full access to projects, BoQs, tasks, limited HR/Vendors
Site Manager Executes and monitors site-level work Task updates, attendance, material request visibility
Vendor Supplies materials, external workforce Access to RFQs, POs, invoices only
Customer End-client who monitors progress and invoices Read-only access to own data
Project Engineer Manages project execution and coordinates teams Full project/task access, limited HR/Accounting
Site Engineer Tracks progress, logs timesheets on-site Access to tasks, planning, documents only

🔐 Access Matrix (Summary)

Role Create Project View Tasks Place Purchase Approve BoQ Edit Attendance
Project Manager
Site Manager
Vendor ✅ (Assigned)
Customer ✅ (Read)
Project Engineer
Site Engineer

🛠 How to Configure Roles (No Code Required)

1. Create Custom User Groups

  • Go to: Settings → Users & Companies → Groups

  • Click Create

  • Fill:

    • Name (e.g., Construction / Site Engineer)
    • Assign users
    • Inherit groups for required modules (see table below)

2. Assign Groups to Users

  • Path: Settings → Users → Select User → Access Rights

  • Add respective group(s):

    • E.g., Construction / Project Engineer

3. Restrict Menus (Developer Mode)

  • Path: Settings → Technical → User Interface → Menu Items
  • Find the menu and set its Groups field to limit access

4. Set Access Control Lists (ACLs)

  • Path: Settings → Technical → Security → Access Control Lists
  • Grant model-level permissions (Create, Read, Write, Delete)

5. Create Record Rules (Optional)

  • Path: Settings → Technical → Security → Record Rules

  • Scope data by user:

    • Example for Site Manager: ['|', ('user_id', '=', user.id), ('assigned_site_id.user_id', '=', user.id)]

🎯 Custom Role Configuration

🏗️ Project Engineer

Responsibilities: Oversee site execution, manage teams and vendors.

Group: Construction / Project Engineer

Inherited Groups:

App Group Name
Project Project / Administrator
Timesheets Timesheets / User: All Timesheets
Documents Documents / User
Field Service Field Service / User
Planning Planning / User
Task Tools Use Task Dependencies
Billing Tools Use Time Billing

Menus Unlocked:

  • Project Configuration
  • All Timesheets
  • Planning Reports
  • Documents Access

🧱 Site Engineer

Responsibilities: Track daily site progress, update tasks.

Group: Construction / Site Engineer

Inherited Groups:

App Group Name
Project Project / User
Timesheets Timesheets / User: All Timesheets
Documents Documents / User
Field Service Field Service / User
Planning Planning

Menus Unlocked:

  • My Planning
  • My Timesheets
  • Site Tasks

🧑‍💼 Customer (Portal-Style Access)

Responsibilities: View project status and invoices.

Group: Construction / Customer

  • No inherited groups
  • No internal menus

Record Rules:

Model Rule Example
appointment.slot [('staff_user_ids', 'in', [user.id])]
appointment.type [('create_uid', '=', user.id)]

Use portal links or embedded forms to give access.


🛒 Vendor

Responsibilities: Respond to RFQs, send invoices and delivery.

Group: Construction / Vendor

  • Access to own POs, RFQs
  • Upload invoices

🛠️ Field-Level Customizations

🎯 Filter Vendor Field in Purchase Orders

Objective: Only show vendors (not all contacts) in partner_id field.

Steps (Studio):

  1. Go to Purchase → Create/Edit PO

  2. Click Studio (🛠️)

  3. Click on Vendor field

  4. Set Domain:

    [('supplier_rank', '>', 0)]

🎯 Restrict Task Assignee to Employees

Steps:

  1. Go to Project → Task Form → Studio

  2. Click on Assignee field (user_id or partner_id)

  3. Apply Domain:

    [('employee_id', '!=', False)]

🧑‍💼 Add Employee Column in User List View

Steps:

  1. Go to Settings → Users
  2. Switch to List View → Studio
  3. Add field: employee_id
  4. Save and close Studio

Result: Easily see which user is linked to which employee.


🔗 Create and Link Employee from User

Steps:

  1. Go to: Settings → Users
  2. Open a User → Click Create Employee (top right)
  3. System auto-links employee and user

Use Case: Enables assignment to tasks, planning, etc.


✅ Summary

Proper role setup in the Construction module ensures:

  • Clean separation of duties
  • Improved security and accountability
  • Streamlined workflows across internal and external stakeholders

All configurations can be completed via Odoo Studio and the admin UI — no technical knowledge or development is required.

✨ Tip: Always test new role permissions using test users to validate access before assigning to real users.

⚠️ **GitHub.com Fallback** ⚠️