/*
 * Copyright (c) 1997-2001 Centro de Informática - UFPE
 */

/**
 * Esta classe modela um usuário de um sistema unix.
 */
public class Usuario {

    // O login do usuário.
    private String login;

    // A senha do usuário.
    private String senha;

    // O nome do usuário.
    private String nome;

    // O grupo ao qual o usuário pertence.
    private int grupo;

    // O diretório raiz do usuário.
    private Diretorio home;


    /**
     * Cria um novo usuário, a partir de seu login, nome e grupo.
     *
     * @param login Login do usuário.
     * @param nome  Nome do usuário.
     * @param grupo Grupo ao qual o usuário pertence.
     */
    public Usuario(String login, String nome, int grupo) {
        this.login = login;
        this.nome = nome;
        this.senha = "MudeMe";
        this.grupo = grupo;
        this.home = new Diretorio("/home/" + login, this);
    }


    /**
     * Retorna o login do usuário.
     *
     * @return O login do usuário.
     */
    public String getLogin() {
        return login;
    }


    /**
     * Retorna o nome do usuário.
     *
     * @return O nome do usuário.
     */
    public String getNome() {
        return nome;
    }


    /**
     * Retorna o diretório raiz do usuário.
     *
     * @return O diretório raiz do usuário.
     */
    public Diretorio getHome() {
        return home;
    }


    /**
     * Verifica a senha do usuário.
     *
     * @param senha Senha do Usuário.
     *
     * @return true se a senha fornecida &eacute; a senha deste usuário;
     *         false caso contrário.
     */
    public boolean verificarSenha(String senha) {
        return (this.senha.equals(senha));
    }


    /**
     * Realiza a mudança da senha do usuário.
     *
     * @param senhaVelha Senha antiga do Usuário.
     * @param senhaNova  Nova senha do Usuário.
     */
    public void mudarSenha(String senhaVelha, String senhaNova) {
        if (this.senha.equals(senhaVelha))
            senha = senhaNova;
        else
            System.out.println("Erro: senha invalida\n");
    }

}