Skip to content

Permissões — canta-igreja

Gerado pelo Detective (Reversa) em 2026-05-11


Papéis

O sistema não possui RBAC formal. Existem dois perfis de acesso implícitos no código:

Papel Descrição Como é identificado
Anônimo Usuário sem conta Google autenticada UsuarioLogadoRepository.getUsuarioLogado() retorna undefined
Autenticado Usuário com Google OAuth concluído UsuarioLogadoRepository.getUsuarioLogado() retorna UsuarioLogado com slug

Não há papéis administrativos, moderadores ou permissões diferenciadas entre usuários autenticados. Toda a gestão de conteúdo (catálogo de músicas, sugestões, obras) é feita fora do app, pela equipe do canta.app.


Matriz de Permissões

Funcionalidade Anônimo Autenticado Observações
Buscar músicas
Visualizar letra Keep Awake ativo
Favoritar música Persiste apenas localmente (SQLite)
Marcar como visualizada Persiste em "Visto recentemente"
Criar repertório Persiste apenas localmente
Editar repertório
Excluir repertório Soft-delete local
Duplicar repertório
Reordenar itens Desabilitado temporariamente
Filtrar por rótulo
Filtrar por livro
Baixar obra da Biblioteca Não requer login
Ver sugestões de repertório
Converter sugestão em repertório
Sincronizar sugestões
Ver liturgia do dia
Abrir player YouTube
Alterar configurações
Relatar erro em música Abre Airtable form
Compartilhar repertório (API) Requer Bearer token
Gerar folheto com slug Requer Bearer token
Gerar folheto Base64 Não requer login
Compartilhar letra por texto Compartilhamento nativo do SO
Importar repertório por slug URL Leitura pública

Restrições de Dados

Recurso Restrição Origem
Repertórios padrão (id=1, id=2) Não podem ser excluídos — tipo_repertorio = 1 Migration v8
Catálogo de músicas Somente-leitura para o usuário — só atualizado via obras da Biblioteca Arquitetura
Sugestões de repertório Somente-leitura — o usuário converte em repertório próprio, não edita a sugestão SugestaoRepertorio
Credenciais OAuth Armazenadas em Keychain (nativo) ou localStorage (web) — nunca em SQLite CredentialsService

Observações de Segurança

Área Implementação Nível
OAuth PKCE (sem client_secret no app) 🟢 Adequado
Token storage (nativo) Keychain / Android Keystore 🟢 Seguro
Token storage (web) localStorage + fallback memória 🟡 Aceitável (sem HttpOnly)
ATTACH DATABASE (web) Alias validado por regex ^[A-Za-z_][A-Za-z0-9_]*$ + filename ^[A-Za-z0-9._-]+$ 🟢 Seguro
Strings SQL Parâmetros via ? (parametrized queries) 🟢 Seguro
CRC32 Apenas para verificação de atualização, não para integridade criptográfica 🟡 Adequado para o uso