while(rs.next()){acesso=(rs.getString("usu_nivel"));if(acesso.equals("administrador")){mostrar(0);limparCampos();LogAcessoslog=newLogAcessos();log.setAcao("Cadastro de Fornecedor");Fornecedor1forne2=montaFornecedor();Stringresp=newFornecedorDAO().cadastrarFornecedor(forne2);JOptionPane.showMessageDialog(this,resp);}else{JOptionPane.showMessageDialog(null,"Você não tem permissão para cadastro");}}}catch(SQLExceptionex){JOptionPane.showMessageDialog(null,"Erro ao buscar nivel de acesso"+ex);}
Você tem que informar o usu_nivel com algo do tipo
ou, pelo menos tirar esta condição do usu_nivel da clausula where ( o que pra mim faz mais sentido visto que é isto que o seu select busca no banco de dados. Além disso, talvez seja interessante incluir o código do usuário a ser buscado para que a busca não ocorra na tabela inteira.
felipe1234
Ficaria assim Rafael ?
String sql=“Select * from tb_usuario where usu_nivel = administrador”;
rafaelbortoletto
Isso deixaria este valor de administrador fixo no seu select e todos os usuários seriam considerados administradores do seu sistema.
Mas, como depois você faz verificações dos níveis de acesso com if, entendo que nem todos os usuários serão administradores.
Por isso, faz mais sentido usar algo do tipo
você pode substituir o codigoDoUsuario pelo codigo dele para poder encontrar o nível de acesso que ele possui no sistema caso exista algum tipo de codigo na tabela ( tb_usuario ).
felipe1234
etão eu mudaria o usu_nivel do meu sistema de vez varchar administrador ou comum para.
usu_nivel integer 1 ou 0 ?
rafaelbortoletto
Vamos lá:
Pelo que eu entendi do seu código, você pega o nível de acesso do usuário chamado de usu_nivel e valida para ver se eles tem as devidas permissões de administrador para efetuar algo. Ocorre que se você define na clausula where dele o nivel de acesso como administrador e, no seu select você busca pelo mesmo usu_nivel vai ocorrei que todos os usuários serão administradores, logo, não seria necessário efetuar esta busca e nem mesmo a validação dos dados.
Para que o processo de validação do nível de acesso funcione corretamente, você teria que buscar pelo código do usuário ( exemplo Felipe tem o código 1, João tem o código 2, Maria tem o código 3, Flávio tem o código 4 e assim sucessivamente conforme novos usuários são cadastrados com seus respectivos direitos de acesso ) Daí, no seu select você faz a busca pelo nível de acesso conforme o código do usuário:
String sql = "select * from tb_usuarios where usu_codigo = ?";
ps.setInt(codigoDoUsuario);
Depois, você pega o usu_nivel e trata no seu if para validar se for administrador ou outra opção.