feat: implement core ERP modules, multi-tenant architecture, and comprehensive system workflow documentation.
This commit is contained in:
@@ -93,7 +93,14 @@ class ContractorController extends Controller
|
||||
'must_change_password' => true,
|
||||
]);
|
||||
|
||||
$role = Role::firstOrCreate(['name' => 'Contractor']);
|
||||
// Provision the account with the role that owns user-management
|
||||
// actions. Keep the legacy Contractor role only for existing
|
||||
// accounts; new contractor admins must use the admin role.
|
||||
$roleName = $contractor->parent_id
|
||||
? 'Sub Contractor Admin'
|
||||
: 'Main Contractor Admin';
|
||||
$role = Role::firstOrCreate(['name' => $roleName]);
|
||||
$role->givePermissionTo('users.access');
|
||||
$user->assignRole($role);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -12,6 +12,7 @@ use Inertia\Inertia;
|
||||
use Modules\ContractorManagement\Events\ContractorApproved;
|
||||
use Modules\ContractorManagement\Events\ContractorOnboarded;
|
||||
use Modules\ContractorManagement\Models\Contractor;
|
||||
use Spatie\Permission\Models\Permission;
|
||||
use Spatie\Permission\Models\Role;
|
||||
|
||||
class ContractorOnboardingController extends Controller
|
||||
@@ -61,8 +62,13 @@ class ContractorOnboardingController extends Controller
|
||||
'type' => 'main', // Default to main if self-registered
|
||||
]);
|
||||
|
||||
// Ensure the Contractor role exists
|
||||
$role = Role::firstOrCreate(['name' => 'Contractor']);
|
||||
// New contractor accounts are administrators for their own tenant.
|
||||
$role = Role::firstOrCreate(['name' => 'Main Contractor Admin']);
|
||||
$usersAccess = Permission::firstOrCreate([
|
||||
'name' => 'users.access',
|
||||
'guard_name' => 'web',
|
||||
]);
|
||||
$role->givePermissionTo($usersAccess);
|
||||
|
||||
// 2. Create the inactive admin user for this contractor
|
||||
$user = User::create([
|
||||
|
||||
Reference in New Issue
Block a user