---
tags: [companyuser, hub]
module: CompanyUser
---

# CompanyUser Module — Hub

> User/role management, authentication, integrations, recurring entities, dashboard, and notifications for each tenant.

## Models
[[[Model]User]] · [[[Model]RecurringEntity]] · [[[Model]RoleAndPermission]]

## Controllers
[[[Controller]UserController]] · [[[Controller]RolesController]] · [[[Controller]AuthController]] · [[[Controller]IntegrationController]] · [[[Controller]DashboardController]] · [[[Controller]RecurringController]]

## Services
[[[Service]UserServices]] · [[[Service]RoleServices]] · [[[Service]RecurringServices]] · [[[Service]IntegrationServices]] · [[[Service]NotificationServices]] · [[[Service]DashboardServices]]

## Infrastructure
[[[Repo]Repositories]] · [[[Observer]Observers]] · [[[Job]Jobs]] · [[[Middleware]Middleware]] · [[[Command]Commands]] · [[[Enum]Enums]]

## Reference
[[[Routes]Routes]] · [[[DB]DatabaseTables]] · [[[Cross]CrossModuleDependencies]]

---

## Architecture

```
Web/API Request
  → Middleware (auth, permissions, feature-restrictions)
  → Controller
      → Validator (DTOs)
      → Service (business logic)
          → Repository → Model → Observer
          → Jobs (async: recurring, sync, email)
          → Cross-module services (Sales, Accounting, etc.)
```

**RBAC**: Spatie Permission — every route gated by `permission:permissions.*`
**Multi-tenancy**: All models use `UsesTenantConnection`
**Audit**: `AuditableTrait` on User, Role, Permission, Referral

## Cross-Module Consumers
[[Inventory/_Inventory]] uses [[[Model]User]] as `created_by` on Warehouse, Requisition, WarehouseProductLog

---

## Related Modules
[[START_HERE]] · [[_Accounting]] · [[_Settings]] · [[_Attachments]] · [[_HR]]
