Olá! Tenho um programa simples que usa Java e banco de dados em Mysql, que gerencia o sistema de uma festa, tendo clientes, produtos, fornecedores (todos salvos no banco) e realiza vendas de produtos para os clientes.
Para iniciar o programa, tenho uma janela de login, onde existem dois usuários: o funcionário, e o administrador. Os logins e as senhas estão salvos no banco, e o programa faz a verificação para saber se a senha corresponde ao usuário para então entrar no programa.
O problema é que não quero que ambos usuários possam ter acesso a todas as funções do programa.
O administrador poderá fazer todas as funções (no caso adicionar/editar/excluir/consultar - clientes, fornecedores e produtos), mas o funcionário deverá apenas consultar esses dados e realizar a venda.
Desejo saber como “separar” essas funções entre os dois usuários (para que quando o login seja feito como funcionário as funções sejam restritas a consulta)
olha, qdo vc fizer o login, vc vai preencher seu objeto usuario com tipo de perfil dele, e qdo vc for montar as telas, vc vai ter que verificar qual o perfil do usuario, para mostrar ou nao os componentes.
A solução proposta pelo alissonvla é ideal para resolver o seu problema. Não há necessidade de classes diferentes, pois conceitualmente os dois são usuários do sistema. Esse tipo de modelagem fugiria da orientação a objetos. O que você tem na verdade são dois usuários com níveis de permissões distintos. Um exemplo de código bem grotesco seria:
if(usuario.getPerfil().equals("administrador")) {
...monte a tela com o perfil de administrador
} else {
...monte a tela com o perfil de usuario
}