fix(clinics): adiciona campo senha no formulário de cadastro de clínica
continuous-integration/webhook Deploy concluído (VPS4)
continuous-integration/webhook Deploy concluído (VPS4)
- Form não enviava password → servidor retornava 400 em todo cadastro - Adicionado input password no modal de cadastro - pc_name tornado opcional no servidor (já era opcional no UI) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,7 @@ export default function AdminClinicsPage() {
|
||||
const [showAddModal, setShowAddModal] = useState(false);
|
||||
const [showTokenModal, setShowTokenModal] = useState(false);
|
||||
const [generatedToken, setGeneratedToken] = useState('');
|
||||
const [form, setForm] = useState({ clinic_name: '', pc_name: '', email: '' });
|
||||
const [form, setForm] = useState({ clinic_name: '', pc_name: '', email: '', password: '' });
|
||||
const [saving, setSaving] = useState(false);
|
||||
const [showSettings, setShowSettings] = useState(false);
|
||||
const [showUsers, setShowUsers] = useState(false);
|
||||
@@ -46,7 +46,7 @@ export default function AdminClinicsPage() {
|
||||
const { data } = await api.post('/admin/clinics', form);
|
||||
if (data.success) {
|
||||
setShowAddModal(false);
|
||||
setForm({ clinic_name: '', pc_name: '', email: '' });
|
||||
setForm({ clinic_name: '', pc_name: '', email: '', password: '' });
|
||||
setGeneratedToken(data.machine_token);
|
||||
setShowTokenModal(true);
|
||||
loadClinics();
|
||||
@@ -203,6 +203,7 @@ export default function AdminClinicsPage() {
|
||||
<div className="form-group"><label>Nome da Clínica *</label><input type="text" required value={form.clinic_name} onChange={set('clinic_name')} placeholder="Ex: Clínica Odonto" /></div>
|
||||
<div className="form-group"><label>Nome do PC</label><input type="text" value={form.pc_name} onChange={set('pc_name')} placeholder="Ex: DESKTOP-RECEPCAO" /></div>
|
||||
<div className="form-group"><label>E-mail de Contato *</label><input type="email" required value={form.email} onChange={set('email')} placeholder="contato@clinica.com" /></div>
|
||||
<div className="form-group"><label>Senha de Acesso *</label><input type="password" required value={form.password} onChange={set('password')} placeholder="Senha para o cliente Windows" /></div>
|
||||
<div className="form-actions">
|
||||
<button type="button" className="btn btn-secondary" onClick={() => setShowAddModal(false)}>Cancelar</button>
|
||||
<button type="submit" className="btn btn-primary" disabled={saving}>{saving ? 'Salvando...' : 'Salvar e Gerar Token'}</button>
|
||||
|
||||
@@ -37,7 +37,7 @@ router.get('/', requireAdmin, async (req, res) => {
|
||||
router.post('/', requireAdmin, async (req, res) => {
|
||||
const { clinic_name, email, password, pc_name } = req.body;
|
||||
|
||||
if (!clinic_name || !email || !password || !pc_name) {
|
||||
if (!clinic_name || !email || !password) {
|
||||
return res.status(400).json({ success: false, message: 'Preencha todos os campos obrigatórios' });
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user