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
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')
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')
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)
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
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)
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
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
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