Files
GSB-Construction/Modules/UserManagement/resources/views/livewire/user-manager.blade.php

116 lines
5.1 KiB
PHP

<div>
<h2>User Management</h2>
@if (session()->has('message'))
<div class="alert alert-success">
{{ session('message') }}
</div>
@endif
@if (session()->has('error'))
<div class="alert alert-danger">
{{ session('error') }}
</div>
@endif
<div class="card mb-4">
<div class="card-body">
<h4>Invite / Add User</h4>
<form wire:submit.prevent="createUser">
<div class="mb-3">
<label>Name</label>
<input type="text" wire:model="name" class="form-control">
@error('name') <span class="text-danger">{{ $message }}</span> @enderror
</div>
<div class="mb-3">
<label>Email</label>
<input type="email" wire:model="email" class="form-control">
@error('email') <span class="text-danger">{{ $message }}</span> @enderror
</div>
<div class="mb-3">
<label>Password (Temporary)</label>
<input type="password" wire:model="password" class="form-control">
@error('password') <span class="text-danger">{{ $message }}</span> @enderror
</div>
<div class="mb-3">
<label>Role</label>
<select wire:model="role" class="form-control">
<option value="">Select Role...</option>
@foreach($availableRoles as $roleName)
<option value="{{ $roleName }}">{{ ['Main Contractor Admin' => 'Contractor Admin', 'admin' => 'Admin'][$roleName] ?? $roleName }}</option>
@endforeach
</select>
@error('role') <span class="text-danger">{{ $message }}</span> @enderror
</div>
<div class="mb-3">
<label>Assign to Contractor</label>
<select wire:model="contractor_id" class="form-control">
<option value="">Select Contractor...</option>
@foreach($availableContractors as $contractor)
<option value="{{ $contractor->id }}">{{ $contractor->company_name }} ({{ ucfirst($contractor->type) }}) - Limit: {{ $contractor->user_limit }}</option>
@endforeach
</select>
@error('contractor_id') <span class="text-danger">{{ $message }}</span> @enderror
</div>
@if(count($availablePermissions) > 0)
<div class="mb-3">
<label class="d-block">Direct Permissions</label>
<div class="row">
@foreach($availablePermissions as $permission)
<div class="col-md-4">
<div class="form-check">
<input class="form-check-input" type="checkbox" wire:model="selectedPermissions" value="{{ $permission }}" id="perm_{{ $loop->index }}">
<label class="form-check-label" for="perm_{{ $loop->index }}">
{{ ucwords(str_replace('_', ' ', $permission)) }}
</label>
</div>
</div>
@endforeach
</div>
</div>
@endif
<button type="submit" class="btn btn-primary">Create User</button>
</form>
</div>
</div>
<div class="card">
<div class="card-body">
<h4>Existing Users</h4>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>Role</th>
<th>Direct Permissions</th>
<th>Contractor</th>
</tr>
</thead>
<tbody>
@foreach($users as $user)
<tr>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
<td>{{ $user->getRoleNames()->implode(', ') }}</td>
<td>
@if($user->getDirectPermissions()->count() > 0)
<span class="badge bg-secondary">{{ $user->getDirectPermissions()->implode('name', ', ') }}</span>
@else
<span class="text-muted">None</span>
@endif
</td>
<td>{{ $user->contractor ? $user->contractor->company_name : 'N/A' }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>