예제 #1
0
    def adicionar(self, caixa, usuario):
        try:
            if self.existe_caixa(caixa.get_codigo()):
                # Caixa já existente!
                return 1

            if type(usuario) is administrador.Administrador:
                #self.atualizar_csv_adicionar(caixa)
                self.atualizar_sql_adicionar(caixa)
                self.caixas.append(caixa)
            else:
                nome_admin, senha_admin = iu_cx.pedir_dados_administrador()

                admin = login.LogIn().verificar_hierarquia(
                    nome_admin, senha_admin)
                if type(admin) is administrador.Administrador:
                    #self.atualizar_csv_adicionar(caixa)
                    self.atualizar_sql_adicionar(caixa)
                    self.caixas.append(caixa)
                else:
                    # Informações de administrador incorretas!
                    return 2

        except Exception as e:
            raise e

        # Caixa adicionada com êxito!
        return 0
예제 #2
0
    def criar_conta_comum() -> usuario_comum.UsuarioComum:
        """
        Cria uma nova conta comum
        :return: instancia de UsuarioComum
        """
        nome = str(input('Usuario: '))
        senha = getpass.getpass('Senha: ').encode()

        return login.LogIn().criar_conta_comum(nome, senha, 'conta_comum')
예제 #3
0
    def criar_conta_administrador() -> administrador.Administrador:
        """
        Cria uma nova conta de administrador
        :return: instancia de Administrador
        """
        nome = str(input('Usuario: '))
        senha = getpass.getpass('Senha: ').encode()

        return login.LogIn().criar_conta_administrador(nome, senha,
                                                       'administrador')
예제 #4
0
    def criar_conta(self) -> usuario.Usuario:
        """
        Solicita o tipo de conta a ser criada
        :return: instancia da subclasse de Usuario (Administrador / UsuarioComum) escolhida
        """
        print('[1] Usuario Comum')
        print('[2] Administrador')
        opcao = int(input('Opcao: '))

        return login.LogIn().criar_conta(opcao)
예제 #5
0
    def opcao_entrada() -> int:
        """
        Verifica o que o usuário deseja fazer antes de inicializar o sistema
        :return: inteiro referente à opção escolhida
        """
        print('[1] Entrar')
        print('[2] Criar Conta')
        print('[0] Sair')
        opcao = int(input('Opcao: '))

        return login.LogIn().opcao_entrada(opcao)
    def remover(self, documento, usuario):
        if type(usuario) is not administrador.Administrador:
            nome_admin, senha_admin = iu_doc.pedir_dados_administrador()
            admin = login.LogIn().verificar_hierarquia(nome_admin, senha_admin)
            if type(admin) is not administrador.Administrador:
                # Informações de administrador incorretas!
                return 1

        self.atualizar_csv_remover(documento)
        index = self.documentos.index(documento)
        del (self.documentos[index])

        # Documento removido com êxito!
        return 0
예제 #7
0
    def primeiro_acesso() -> administrador.Administrador:
        """
        Cria uma conta de administrador no caso de o sistema estar sendo iniciado pela primeira vez
        :return: instância de Administrador
        """
        print('=====PRIMEIRO ACESSO=====')
        print(
            'Por ser o primeiro acesso no sistema, voce sera automaticamente\n'
            ' registrado como administrador. As proximas contas a serem adicionadas\n'
            ' precisarao de autorizacao de um administrador ja existente\n'
            ' do sistema para serem efetuadas.')
        nome = str(input('\nUsuario: '))
        senha = getpass.getpass('Senha: ').encode()
        tipo_conta = 'administrador'

        return login.LogIn().primeiro_acesso(nome, senha, tipo_conta)
예제 #8
0
    def remover(self, caixa, usuario):
        if self.existe_documento_na_caixa(caixa):
            # A caixa precisa estar vazia para ser removida!
            return 1

        if type(usuario) is not administrador.Administrador:
            nome_admin, senha_admin = iu_cx.pedir_dados_administrador()
            admin = login.LogIn().verificar_hierarquia(nome_admin, senha_admin)
            if type(admin) is not administrador.Administrador:
                # Informações de administrador incorretas!
                return 2

        self.atualizar_csv_remover(caixa)
        index = self.caixas.index(caixa)
        del (self.caixas[index])

        # Caixa removida com êxito!
        return 0
예제 #9
0
    def adicionar(self, usuario: usuario.Usuario):
        codigo = str(input('Codigo da estante: '))
        disponibilidade = str(input('Disponibilidade da estante: '))
        try:
            if type(usuario) is administrador.Administrador:
                return codigo, disponibilidade
            else:
                nome_admin = str(input('Autorizacao do administrador:\nUsuario: '))
                senha_admin = getpass.getpass('Senha: ').encode()

                admin = login.LogIn().verificar_hierarquia(nome_admin, senha_admin)
                if type(admin) is administrador.Administrador:
                    return codigo, disponibilidade
                else:
                    raise Exception('Erro na autorização do administrador')

        except Exception as e:
            raise e
    def remover(self, estante, usuario):
        if self.existe_caixa_na_estante(estante):
            # A estante precisa estar vazia para ser removida!
            return 1

        if type(usuario) is not administrador.Administrador:
            nome_admin, senha_admin = iu_est.pedir_dados_administrador()
            admin = login.LogIn().verificar_hierarquia(nome_admin, senha_admin)
            if type(admin) is not administrador.Administrador:
                # Informações de administrador incorretas!
                return 2

        self.atualizar_csv_remover(estante)
        index = self.estantes.index(estante)
        del (self.estantes[index])

        # Estante removida com êxito!
        return 0
예제 #11
0
 def login(self) -> usuario.Usuario:
     """
     Faz as verificações necessárias antes de inicializar o sistema
     :return: instância de Usuario referente ao usuário solicitante do LogIn
     """
     while True:
         with open('data/.data.csv', 'r') as _usuarios:
             usuarios = _usuarios.read()
             if not usuarios:
                 return self.primeiro_acesso()
         try:
             opcao = self.opcao_entrada()
             if opcao == 1:
                 nome = str(input('Usuario: '))
                 senha = getpass.getpass('Senha: ').encode()
                 return login.LogIn().verificar_hierarquia(nome, senha)
             elif opcao == 2:
                 return self.criar_conta()
         except Exception as e:
             raise e