Untitled

 avatar
unknown
plain_text
2 years ago
3.0 kB
8
Indexable
import json
import os


class User:
    def __init__(self,username,password,email):
        self.username=username
        self.password=password
        self.email=email
        
        

class UserRepository:
    def __init__(self):
        self.users=[]
        self.isLoggedIn = False
        self.currentUser={}
        
        # Load users from  .json file
        self.loadUsers()
        
    def loadUsers(self):
        if os.path.exists("users.json"):
            with open("users.json","r",encoding="utf-8") as file:
                users= json.load(file)
                for user in users:
                    user=json.loads(user)
                    newUser=User(username=user["username"],password=user["password"],email=user["email"])
                    self.users.append(newUser)
            print(self.users)
                
                
    def register(self, user:User):
        self.users.append(user)       
        self.savetoFile()
        print("user created.")
        
         
    def login(self,username,password):
        
        for user in self.users:
            if user.username == username and user.password==password:
                self.isLoggedIn=True
                self.currentUser=user
                print("Login")
                break
        
        
    def logout(self):
        self.isLoggedIn=False
        self.currentUser={}
        print("Logout")
    
    def identity(self):
        if self.isLoggedIn:
            print(f"username: {self.currentUser.username}")
        else:
            print("no login")
        
        
    def savetoFile(self):
        list=[]
        
        for user in self.users:
            list.append(json.dumps(user.__dict__))
        
        with open("users.json","w") as file:
            json.dump(list,file)
    
 
repository=UserRepository()  

while True:
    print("Menu".center(50,'*'))
    choice=input("1-Register\n2- Login\n3- Logout\n4- identity\n5- Exit \n Seçiminiz: ")
    if choice=="5":
        break

    else:
        if choice=="1":
            # Register
            username=input("username : ")
            password=input("password : ")
            email=input("email : ")
            
            user=User(username=username,password=password,email=email)
            repository.register(user)
            
            print(repository.users)
            
            
        elif choice=="2":
            # Login
            if repository.isLoggedIn:
                print("already login")
            else:
                username=input("username : ")
                password=input("password : ")
                repository.login(username,password)
        
        elif choice=="3":
            # Logout
            repository.logout()
        
        elif choice =="4":
            # İdentity- Display Username
            repository.identity()
        
        else: 
            print("wrong choice")