Skip to content

Commit 13d99ef

Browse files
committed
fix: restaura estrutura modular da página de login
1 parent 1ccbff5 commit 13d99ef

2 files changed

Lines changed: 155 additions & 12 deletions

File tree

public/login.php

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,29 @@
1-
<?php require_once __DIR__ . '/../src/View/Pages/Auth/LoginPage.php';
1+
<?php
2+
/**
3+
* PRODMAIS - Wrapper de Login
4+
* Encaminha para a View de Autenticação na arquitetura modular
5+
*/
6+
7+
require_once __DIR__ . '/../src/UmcFunctions.php';
8+
require_once __DIR__ . '/../vendor/autoload.php';
9+
10+
use App\View\Pages\Auth\LoginPage;
11+
12+
// Iniciar sessão
13+
if (session_status() === PHP_SESSION_NONE) {
14+
session_start();
15+
}
16+
17+
$error = '';
18+
19+
// Lógica de Autenticação (Exemplo simplificado)
20+
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
21+
$user = $_POST['user'] ?? '';
22+
$pass = $_POST['password'] ?? '';
23+
24+
// Aqui viria a chamada ao AuthManager
25+
$error = 'Credenciais incorretas para demonstração.';
26+
}
27+
28+
// Renderizar a página usando o Componente Modular
29+
LoginPage::display(['error' => $error]);

src/View/Pages/Auth/LoginPage.php

Lines changed: 126 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,131 @@
11
<?php
2-
require_once __DIR__ . '/../../../../vendor/autoload.php';
2+
namespace App\View\Pages\Auth;
33

4-
use App\View\Pages\Auth\LoginPage;
4+
use App\View\Components\Navbar\Navbar;
5+
use App\View\Components\Footer\Footer;
56

6-
session_start();
7-
$error = '';
7+
/**
8+
* LoginPage - Página de Login Modular
9+
*/
10+
class LoginPage {
11+
public static function display($props = []) {
12+
$error = $props['error'] ?? '';
13+
?>
14+
<!DOCTYPE html>
15+
<html lang="pt-BR">
16+
<head>
17+
<meta charset="UTF-8">
18+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
19+
<title>Login - Prodmais</title>
20+
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
21+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/all.min.css">
22+
<link rel="stylesheet" href="/css/prodmais-elegant.css">
23+
<style>
24+
body {
25+
background: #f8fafc;
26+
min-height: 100vh;
27+
display: flex;
28+
flex-direction: column;
29+
}
30+
.login-container {
31+
flex: 1;
32+
display: flex;
33+
align-items: center;
34+
justify-content: center;
35+
padding: 2rem 0;
36+
}
37+
.login-card {
38+
background: white;
39+
border-radius: 1.5rem;
40+
box-shadow: 0 10px 25px rgba(0,0,0,0.05);
41+
overflow: hidden;
42+
width: 100%;
43+
max-width: 450px;
44+
border: 1px solid rgba(0,0,0,0.05);
45+
}
46+
.login-header {
47+
background: linear-gradient(135deg, #1a56db 0%, #0369a1 100%);
48+
padding: 3rem 2rem;
49+
text-align: center;
50+
color: white;
51+
}
52+
.login-body {
53+
padding: 2.5rem;
54+
}
55+
.form-control {
56+
padding: 0.75rem 1rem;
57+
border-radius: 0.75rem;
58+
border: 1px solid #e2e8f0;
59+
}
60+
.form-control:focus {
61+
border-color: #3b82f6;
62+
box-shadow: 0 0 0 3px rgba(59,130,246,0.1);
63+
}
64+
.btn-primary {
65+
background: #1a56db;
66+
border: none;
67+
padding: 0.75rem;
68+
border-radius: 0.75rem;
69+
font-weight: 600;
70+
margin-top: 1rem;
71+
}
72+
.btn-primary:hover {
73+
background: #1e40af;
74+
}
75+
.brand-logo {
76+
font-size: 2.5rem;
77+
font-weight: 900;
78+
margin-bottom: 0.5rem;
79+
}
80+
.brand-logo span {
81+
color: #0ea5e9;
82+
}
83+
</style>
84+
</head>
85+
<body>
86+
<?php Navbar::display(); ?>
887

9-
// Auth logic (Simulated for brevity, in production this should be in a Service)
10-
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
11-
$user = $_POST['user'] ?? '';
12-
// ... logic ...
13-
$error = 'Usuário ou senha inválidos.';
14-
}
88+
<div class="login-container">
89+
<div class="login-card fade-in-up">
90+
<div class="login-header">
91+
<div class="brand-logo">Prod<span>mais</span></div>
92+
<p class="mb-0 opacity-75">Acesse sua conta para gerenciar produções</p>
93+
</div>
94+
<div class="login-body">
95+
<?php if ($error): ?>
96+
<div class="alert alert-danger d-flex align-items-center" role="alert">
97+
<i class="fas fa-exclamation-circle me-2"></i>
98+
<div><?php echo $error; ?></div>
99+
</div>
100+
<?php endif; ?>
15101

16-
LoginPage::display(['error' => $error]);
102+
<form method="POST">
103+
<div class="mb-3">
104+
<label class="form-label text-secondary small fw-bold">E-MAIL OU USUÁRIO</label>
105+
<input type="text" name="user" class="form-control" placeholder="jose.silva@umc.br" required>
106+
</div>
107+
<div class="mb-4">
108+
<div class="d-flex justify-content-between">
109+
<label class="form-label text-secondary small fw-bold">SENHA</label>
110+
<a href="/esqueci-senha.php" class="small text-decoration-none">Esqueceu a senha?</a>
111+
</div>
112+
<input type="password" name="password" class="form-control" placeholder="••••••••" required>
113+
</div>
114+
<button type="submit" class="btn btn-primary w-100">
115+
Entrar <i class="fas fa-sign-in-alt ms-2"></i>
116+
</button>
117+
</form>
118+
</div>
119+
<div class="bg-light p-3 text-center border-top">
120+
<span class="text-secondary small">Novo por aqui? </span>
121+
<a href="mailto:admin@umc.br" class="small text-decoration-none fw-bold">Solicite acesso</a>
122+
</div>
123+
</div>
124+
</div>
125+
126+
<?php Footer::display(); ?>
127+
</body>
128+
</html>
129+
<?php
130+
}
131+
}

0 commit comments

Comments
 (0)