AJUDA COM EXERCICIO EM PYTHON

26/04/2023

0

É um exercicio do meu curso online iniciante, mas estou me batendo muito para realizar.
Em python: (As permissões devem estar previamente armazenad)

-O usuário deve entrar com o seu login e senha​ (autenticação)
-Se o usuário estiver autenticado, continue a execução do programa
-Caso contrário, saia do programa e mostre a mensagem "Usuário ou senha inválidos" na tela
-A relação usuário/senha deve estar armazenado em um arquivo (TXT, CSV, JSON ou XML)
-As permissões dos usuários devem estar armazenadas em um arquivo (TXT, CSV, JSON ou XML)
-O sistema deve perguntar ao usuário qual ação ele deseja realizar (ler, escrever ou apagar) sobre um recurso fictício
-No contexto do trabalho, o recurso fictício, no caso, não é um arquivo existente no sistema
-Ele deverá especificar a ação que deseja realizar (ler, escrever, apagar) sobre um recurso
-O sistema deve perguntar ao usuário qual arquivo ele deseja realizar a operação selecionada no item 2​
-O sistema deve imprimir na tela caso o acesso foi concedido ou não​
-“Acesso permitido” caso o acesso foi concedido​
-Se não, “Acesso negado”
Antony

Antony

Responder

Posts

27/04/2023

Arthur Heinrich

Por se tratar de um exercício, você precisa pensar um pouco. É esta a finalidade de um "exercício". Exercitar.

Porém, vamos tentar te ajudar.

Este exercício tem por objetivo exercitar a leitura do conteúdo de arquivos, para ler a lista de usuários/senhas de um e permissões do outro.

Imagine que seu arquivo "usuarios.txt" contenha uma linha mais ou menos assim:

antony;senha123

Este é o formato conhecido como CSV. O CSV original (comma separated values) requer uma vírgula separando as colunas. Mas, como no Brasil é costume utilizar a vírgula em valores decimais, criar um arquivo CSV com valores decimais viraria uma bagunça. Então, costuma-se utilizar o ponto e vírgula como separador.

Esta linha diz que existe um usuário chamado "antony", cuja senha é "senha123".

Seu programa deverá pedir que o usuário digite um nome de usuário e, em seguida, sua senha.

Com base nestes dois valores fornecidos, deve ler o arquivo de usuários e verificar se existe uma linha que bata com os valores informados.

Se não existir, mostre a mensagem "Usuário ou senha inválidos" e encerre o programa.

Na segunda etapa do programa, a tarefa é muito semelhante.

O programa deve pedir duas informções: "operação" e "nome da tabela".

Fará a leitura do arquivo permisoes.txt em busca de uma linha contendo a permissão e o nome da tabela.

Se existir, mostre a mensagem "Acesso permitido". Caso contrário, mostre a mensagem "Acesso negado" e encerre o programa.
Responder

07/12/2023

Leticia Lima

Olá tudo certo Antony ?

Vamos suporte que voce tenha seu arquivo .csv já na pasta raiz ai.

Neste exemplo, o vamos ler os dados de usuários do seu arquivo CSV, autentica o usuário com base no login e senha fornecidos, e depois verifica se o usuário tem a permissão necessária para realizar a ação desejada no recurso fictício.

import csv

def autenticar_usuario(login, senha):
    with open('usuarios.csv', newline='') as arquivo:
        leitor = csv.DictReader(arquivo)
        for linha in leitor:
            if linha['usuario'] == login and linha['senha'] == senha:
                return linha['permissao']
    return None

def realizar_acao(acao, arquivo, permissao):
    permissoes_validas = {'ler', 'escrever', 'apagar'}
    
    if permissao not in permissoes_validas:
        print("Permissão inválida.")
        return
    
    if acao == permissao:
        print("Acesso permitido.")
    else:
        print("Acesso negado.")

def main():
    login = input("Digite seu login: ")
    senha = input("Digite sua senha: ")

    permissao = autenticar_usuario(login, senha)

    if permissao is not None:
        print(f"Bem-vindo, !")
        acao = input("Digite a ação que deseja realizar (ler, escrever, apagar): ")
        arquivo = input("Digite o nome do arquivo: ")
        realizar_acao(acao, arquivo, permissao)
    else:
        print("Usuário ou senha inválidos.")

if __name__ == "__main__":
    main()

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar