Backlog Unificado
Projeto: RioNoTeatro. Fonte principal: /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md.
Modo read-only: ações de escrita ficam disponíveis apenas para o Cérebro.
Sem itens pendentes em /www/wwwroot/rionoteatro.com.br/docs/BACKLOG.md.
Especificações Disponíveis (fora da fila pendente)
- BK-136
- BK-137
- BK-138
- BK-147
- BK-148
- BK-149
- BK-150
- BK-151
- BK-156
- BK-158
- BK-159
- BK-160
- BK-161
- BK-162
- BK-163
- BK-164
- BK-165
- BK-166
- BK-170
- BK-171
- BK-172
- BK-177
- BK-183
- BK-186
- BK-187
- BK-189
- BK-190
- BK-191
- BK-192
- BK-193
- BK-195
- BK-196
- BK-197
- BK-198
- BK-199
- BK-201
- BK-205
- BK-207
- BK-208
- BK-209
- BK-210
- BK-211
- BK-212
- BK-213
- BK-214
- BK-215
- BK-216
- BK-217
- BK-218
- BK-219
- BK-220
- BK-221
- BK-229
- BK-230
- BK-231
- BK-232
- BK-233
- BK-234
- BK-235
- BK-236
- BK-239
- BK-240
- BK-241
- BK-242
- BK-243
- BK-244
- BK-245
- BK-246
- BK-248
- BK-249
- BK-250
- BK-251
- BK-252
- BK-253
- BK-254
- BK-255
- BK-256
- BK-257
- BK-258
- BK-259
- BK-260
- BK-261
- BK-262
- BK-263
- BK-264
- BK-265
- BK-266
- BK-267
- BK-268
- BK-269
- BK-270
- BK-271
- BK-272
- BK-275
- BK-276
- BK-277
- BK-278
- BK-279
- BK-280
- BK-295
- BK-313
Detalhe do BK Selecionado
/www/wwwroot/rionoteatro.com.br/docs/backlog/BK-259-listaopen-retirada-ingresso.md • 2026-04-12T06:34:46.984Z
BK-259 - Lista aberta do produtor: retirada/desmarcação de ingressos
Objetivo
- corrigir a tela
produtor/listaopen.phppara mostrar corretamente o statusingresso_retirado - restaurar o toggle do clique no nome para marcar e desmarcar retirada sem comportamento silencioso
Sintomas reportados
- alguns nomes aparecem com
(JÁ RETIRADO)de forma aparentemente indevida - clicar no nome, que antes desmarcava o status, não está mais funcionando
- caso real reportado na URL:
https://rionoteatro.com.br/produtor/listaopen.php?id=MTg4OTE=#
Leitura inicial
- a UI renderiza
desmarcaingressoquandopedidos.ingresso_retirado = 1 - o toggle chama
produtor/action.phpvia AJAX nos cases: marcaingressodesmarcaingresso- os dois cases usam
obj_sql->update(...)legado e retornamsuccesssem verificar o resultado real do update - existe evidência no banco de pelo menos um pedido da sessão com
ingresso_retirado = 1 - hipótese principal desta rodada:
- o backend de toggle está frágil/silencioso e precisa passar a responder com sucesso real ou erro real
Arquivos candidatos
produtor/listaopen.phpprodutor/action.php
RCA adicional - 2026-04-12 03:25 -03
- caso real auditado:
- URL:
https://rionoteatro.com.br/produtor/listaopen.php?id=MTg4OTE=# - sessão:
sec_id = 18891 - peça:
As Loucas do Méier - pedido afetado:
pedidos.id = 73726 - estado encontrado no banco no início da auditoria:
pedidos.ingresso_retirado = 1para73726- por isso a UI mostrava
Carlos José Pauferrocomo(JÁ RETIRADO) - evidência importante da rodada:
- o toggle em
POST /produtor/action.phpaceitavamarcaingressoedesmarcaingressosem exigir sessão válida do produtor - isso permitia alterar
ingresso_retiradodiretamente por request HTTP, fora do fluxo autenticado do painel - correção aplicada:
produtor/action.phpagora exige usuário logado- a autorização do toggle passa a seguir o campo
pecas.email_lista - qualquer usuário autenticado cujo
login->getEmail()esteja listado emE-mail Receberá lista de compradorespode marcar/desmarcar retirada - isso cobre o caso operacional real de admin, produtor e bilheteria quando o e-mail deles estiver cadastrado no mesmo campo usado pela
listaopen.php - chamada sem sessão agora responde JSON com
Sessao expirada. Entre novamente. produtor/listaopen.phppassou a abrir um modal claro de login quando o toggle falha por sessão expirada ou falta de autorização, em vez de só alert genérico- o modal orienta que o usuário use um login cujo e-mail esteja cadastrado no campo de recebimento da lista da peça
- o CTA
Fazer loginagora aponta paraprodutor/login.php?next=...com retorno automático seguro para a próprialistaopen.php produtor/login.phpeprodutor/action.phppassaram a aceitar essenextapenas para paths internos de/produtor/, bloqueando redirect externo- observação operacional:
- o pedido
73726foi devolvido paraingresso_retirado = 0durante a auditoria desta rodada - validações executadas:
php -l produtor/action.phpphp -l produtor/listaopen.phpphp -l produtor/login.phpcurl -X POST https://rionoteatro.com.br/produtor/action.php -d 'act=desmarcaingresso&id=73726'agora retorna erro de sessão expirada sem alterar o banco