Skip to content

Commit 6ccbc1d

Browse files
committed
Refatorar histórico de acesso para ações de usuário e atualizar rotas e visualizações correspondentes
1 parent c5aebd3 commit 6ccbc1d

File tree

8 files changed

+139
-110
lines changed

8 files changed

+139
-110
lines changed

app/Http/Controllers/DashboardController.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
use App\Models\Cadastro;
66
use App\Models\CartaVendida;
77
use App\Models\Empresa;
8-
use App\Models\HistoricoAcesso;
98
use App\Models\TipoCarta;
109
use App\Models\User;
10+
use App\Models\UsuarioAcao;
1111
use Illuminate\Http\Request;
1212
use Illuminate\Support\Facades\Auth;
1313

@@ -102,10 +102,10 @@ public function storeEmpresa(Request $request)
102102
return view('dashboard.empresas');
103103
}
104104

105-
public function historicoAcesso()
105+
public function usuarioAcoes()
106106
{
107-
$acessos = HistoricoAcesso::with(['usuario.cadastro'])->orderBy('DataEntrada', 'DESC')->get();
107+
$usuarioAcoes = UsuarioAcao::with('usuario')->orderBy('DataHora', 'DESC')->get();
108108

109-
return view('dashboard.historicoAcesso', compact('acessos'));
109+
return view('dashboard.usuarioAcoes', compact('usuarioAcoes'));
110110
}
111111
}

app/Http/Controllers/UsuarioController.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
use App\Mail\VerificacaoEmail;
88
use App\Models\Cadastro;
99
use App\Models\Funcao;
10-
use App\Models\HistoricoAcesso;
1110
use App\Models\User;
11+
use App\Models\UsuarioAcao;
1212
use Exception;
1313
use Illuminate\Http\Request;
1414
use Illuminate\Support\Facades\Auth;
@@ -55,23 +55,22 @@ public function auth(Request $request)
5555
Auth::logout();
5656
$request->session()->invalidate();
5757
$request->session()->regenerateToken();
58+
UsuarioAcao::registrarAcao($user->IDUsuario, 'O usuário tentou acessar a conta, mas a conta estava bloqueada ou em análise');
5859
return redirect()->route('usuario.login')->with(
5960
'erro',
6061
'Usuário não autorizado. Verifique se o administrador liberou seu acesso e se seu email está confirmado e se sua conta não está suspensa.'
6162
);
6263
}
6364

64-
HistoricoAcesso::create([
65-
'IDUsuario' => $user->IDUsuario,
66-
'DataEntrada' => now(),
67-
]);
65+
UsuarioAcao::registrarAcao($user->IDUsuario,'Acessou a conta');
6866
$request->session()->regenerate();
6967
return redirect()->intended('/dashboard');
7068
}
7169

7270

7371
public function logout(Request $request)
7472
{
73+
UsuarioAcao::registrarAcao(Auth::user()->IDUsuario, 'Deslogou da conta');
7574
Auth::logout();
7675
$request->session()->invalidate();
7776
$request->session()->regenerateToken();

app/Models/HistoricoAcesso.php

Lines changed: 0 additions & 27 deletions
This file was deleted.

app/Models/UsuarioAcao.php

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?php
2+
3+
namespace App\Models;
4+
5+
use Illuminate\Database\Eloquent\Factories\HasFactory;
6+
use Illuminate\Database\Eloquent\Model;
7+
8+
/**
9+
* @method static create(array $array)
10+
*/
11+
class UsuarioAcao extends Model
12+
{
13+
use HasFactory;
14+
15+
protected $table = 'UsuarioAcao';
16+
protected $primaryKey = 'IDUsuarioAcao';
17+
public $timestamps = false;
18+
protected $fillable = [
19+
'IDUsuario',
20+
'Descricao',
21+
'DataHora',
22+
'EnderecoIp',
23+
'Navegador',
24+
];
25+
26+
public function usuario()
27+
{
28+
return $this->belongsTo(User::class, 'IDUsuario', 'IDUsuario');
29+
}
30+
31+
32+
protected static function boot()
33+
{
34+
parent::boot();
35+
36+
static::creating(function ($model) {
37+
$model->dataHora = now();
38+
});
39+
}
40+
41+
public static function registrarAcao(int $IDUsuario, string $descricao)
42+
{
43+
return self::create([
44+
'IDUsuario' => $IDUsuario,
45+
'Descricao' => $descricao,
46+
'EnderecoIp' => request()->ip(),
47+
'Navegador' => request()->header('User-Agent'),
48+
]);
49+
}
50+
}

resources/views/dashboard/historicoAcesso.blade.php

Lines changed: 0 additions & 70 deletions
This file was deleted.
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
@extends('dashboard')
2+
@section('title', 'Dashboard')
3+
@section('pagina')
4+
5+
<div class="col-16">
6+
<div class="card">
7+
<div class="card-body">
8+
<div class="d-sm-flex my-3">
9+
<label>Filtrar Usuário por:</label>
10+
<select class="form-select form-select-sm w-auto" id="filtroUsuario">
11+
<option value="">Todos</option>
12+
</select>
13+
</div>
14+
<div class="table-responsive">
15+
<table class="table-striped table" id="table">
16+
<thead>
17+
<tr>
18+
<th>Nome do Usuário</th>
19+
<th>Descrição</th>
20+
<th>Data e Hora</th>
21+
<th>Navegador</th>
22+
<th>Endereço de Ip</th>
23+
</tr>
24+
</thead>
25+
<tbody>
26+
27+
@foreach ($usuarioAcoes as $usuarioAcao)
28+
<tr>
29+
<td>{{ $usuarioAcao->usuario->Cadastro->Nome }}</td>
30+
<td>{{ $usuarioAcao->Descricao }}</td>
31+
<td>{{ $usuarioAcao->DataHora }}</td>
32+
<td>{{ $usuarioAcao->Navegador }}</td>
33+
<td>{{ $usuarioAcao->EnderecoIp }}</td>
34+
</tr>
35+
@endforeach
36+
</tbody>
37+
</table>
38+
39+
</div>
40+
</div>
41+
</div>
42+
</div>
43+
44+
<script>
45+
$(document).ready(function() {
46+
const table = $('#table').DataTable({
47+
order: [],
48+
"language": {
49+
"url": "https://cdn.datatables.net/plug-ins/1.13.4/i18n/pt-BR.json"
50+
},
51+
"dom": '<"row align-items-center"<"col-md-6" l><"col-md-6" f>>' +
52+
'<"table-responsive border-bottom my-3" rt><"row align-items-center"' +
53+
'<"col-md-6" i><"col-md-6" p>><"clear">',
54+
"lengthMenu": [
55+
[10, 25, 50, -1],
56+
[10, 25, 50, "Todos"]
57+
],
58+
"scrollY": "60vh",
59+
"scrollX": true,
60+
"scrollCollapse": true,
61+
"autoWidth": false,
62+
"responsive": false
63+
});
64+
65+
table.column(0).data().unique().sort().each(function(value) {
66+
if (value !== null && value.trim() !== '') {
67+
$('#filtroUsuario').append('<option value="' + value + '" >' + value + '</option>');
68+
}
69+
});
70+
71+
$('#filtroUsuario').on('change', function() {
72+
let filtro = $(this).val();
73+
table.column(0).search(filtro).draw();
74+
});
75+
});
76+
</script>
77+
@endsection

resources/views/partials/asideDashboard.blade.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,16 +86,16 @@
8686
</ul>
8787
<ul class="sub-nav collapse" id="sidebar-consultar" data-bs-parent="#sidebar-menu">
8888
<li class="nav-item">
89-
<a class="nav-link " href="{{ url('/dashboard/historicoAcesso') }}">
89+
<a class="nav-link " href="{{ url('/dashboard/usuarioAcoes') }}">
9090
<i class="icon">
9191
<svg class="icon-10" xmlns="http://www.w3.org/2000/svg" width="10" viewBox="0 0 24 24" fill="currentColor">
9292
<g>
9393
<circle cx="12" cy="12" r="8" fill="currentColor"></circle>
9494
</g>
9595
</svg>
9696
</i>
97-
<i class="sidenav-mini-icon"> H </i>
98-
<span class="item-name">Histórico de Acesso</span>
97+
<i class="sidenav-mini-icon"> U </i>
98+
<span class="item-name">Ações dos Usuários</span>
9999
</a>
100100
</li>
101101
</ul>

routes/web.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard.index')->middleware('auth');
2828
Route::get('/dashboard/leads', [DashboardController::class, 'leads'])->name('dashboard.leads')->middleware('auth');
29-
Route::get('/dashboard/historicoAcesso', [DashboardController::class, 'historicoAcesso'])->name('dashboard.historicoAcesso')->middleware('auth');
29+
Route::get('/dashboard/usuarioAcoes', [DashboardController::class, 'usuarioAcoes'])->name('dashboard.usuarioAcoes')->middleware('auth');
3030
Route::get('/dashboard/contas', [DashboardController::class, 'contas'])->name('dashboard.contas')->middleware('auth');
3131
Route::get('/dashboard/cartas-a-venda', [DashboardController::class, 'cartasAVenda'])->name('dashboard.cartasAVenda')->middleware('auth');
3232
Route::get('/dashboard/empresas', [DashboardController::class, 'empresas'])->name('dashboard.empresas')->middleware('auth');

0 commit comments

Comments
 (0)