Sessão individual para cada usuário



  • Boa tarde! Gostaria de saber como faço para deixar a sessão de cada usuário que está cadastrado de maneira individual sem utilizar filtro. Fiz o filtro :Usuario e funcionou, no entanto, estou com dificuldades para excluir os dados que este usuário cadastrou, está virando uma bola de neve. Ouvi dizer que utilizam variável de sessão, mas nunca utilizei nem sei para onde ir com isso. Agradeço a quem puder ajudar.


  • Erick, explica um pouco melhor a dinamica para que possamos te ajudar.
    Aparentemente é algo simples, mas n consegui entender o que vc precisa exatamente.


  • Oi Anderson, tudo bem? Então, deixa eu te explicar. Tenho um sistema onde possuo vários usuários. Cada usuário possui um login para realizar seu trabalho, no entanto, o usuário A por exemplo consegue visualizar as informações que foram cadastradas em um formulário qualquer pelo o usuário B, e assim sucessivamente. Para solucionar esse problema de privacidade de dados eu resolvi criar um filtro, utilizando a função =:usuario_login em todos os formulários que foram criados no sistema. Na verdade, eu não criei esse filtro apenas pela questão de privacidade. Foi uma forma que eu encontrei de individualizar o registro de cada usuário. Enfim, o usuário A não está mais conosco. Ai vem a chave da questão, ao tentar excluir o usuário da tabela FR_USUARIO, ele pede para que eu exclua tudo que ele cadastrou no sistema. Até aí tentei suportar kkkk, fui em um determinado formulário onde continha informações cadastradas por ele para excluir uma por uma, mas ai recebi mais uma mensagem de erro dizendo que existem registros que dependem deste registro que eu estou tentando excluir, ou seja, o banco vai ficar acumulando e acumulando... Realmente é complicado de explicar, mas espero que tenha entendido alguma coisa :lol:


  • Um detalhe importante, toda vez em que o usuário realiza o cadastro de algum registro é salvo uma Integer com o valor correspondente ao login dele, pois esse valor eu utilizo para fazer os filtros... Basicamente eu gostaria de saber se com a variável de sessão eu consigo resolver esse problema e como eu faço para utilizar ela corretamente. Meu desejo é que ao excluir o usuário da tabela FR_USUARIO, automaticamente todos os registros que ele cadastrou sejam eliminados.


  • Erick,

    É interessante mesmo apagar os registros?
    Não seria melhor manter o histórico dos lançamentos de um usuário? É provável que mais pra frente esses dados sejam necessários para consulta.
    Quando um usuário não fizer mais parte do quadro de usuários, basta que você retire os acessos dele ao sistema. Desmarca o checkbox de acesso no cadastro do usuário.

    Mas se a exclusão for realmente necessária, você pode criar um fluxo e vincular ao evento "Antes de Excluir". Nesse fluxo, você apaga todas as depêndencias da tabela FR_USUARIO, para que a exclusão do próprio usuário seja realizada com sucesso.


  • Então, eu até posso manter estes registros, mas no caso do usuário, quando ele tenta excluir um registro que ele mesmo cadastrou o sistema pede para excluir as dependências, ou seja, os registros filhos... Há uma maneira de resolver isso?


  • Pro caso do usuário, segue a mesma lógica.
    Em vez de excluir, vc pode criar uma rotina para inativar o registro. Cria um campo "situação" por exemplo. Todo registro vc marca como "Ativo". Ao cancelar, muda a situação para "Cancelado". Assim, em seus relatórios ou outras regras, vc pode considerar apenas os ativos. Os cancelados permanecem como histórico, é importante!

    De qualquer forma, caso queira mesmo excluir, segue a mesma lógica... Cria um fluxo e vincula ao evento "antes de deletar" e apaga todas as dependências desse registro. Assim, ele será excluído sem problemas. Mas recomendo fortemente que os registros sejam mantidos, é a prática mais segura que devemos utilizar em nossos sistemas.

    Atc,
    Anderson Leal.


  • Entendi, tem razão. Vou tentar desta forma. Obrigado pelas dicas!

Log in to reply