119 lines
2.7 KiB
Python
119 lines
2.7 KiB
Python
import sqlite3
|
|
import hashlib
|
|
|
|
class DB:
|
|
def __init__( self, file= ):
|
|
self.file = file
|
|
|
|
def create_user( self, name, pin, permission ):
|
|
|
|
c = self.__connect()
|
|
|
|
# check if user name is taken
|
|
result = self.get_user( name )
|
|
|
|
if len(result) == 0:
|
|
c.execute( "INSERT INTO user ( name, pin, permission ) VALUES ( ?, ?, ? )", ( name, pin, permission ) )
|
|
self.conn.commit
|
|
c.close()
|
|
return True
|
|
|
|
else:
|
|
c.close()
|
|
return False
|
|
|
|
def login_user():
|
|
c = self.__connect
|
|
|
|
c.execute( "SELECT * FROM user WHERE pin=(?) and name=(?)", ( pin ,name ) )
|
|
result = c.fetchall()
|
|
c.close()
|
|
|
|
if len( result ) == 1
|
|
return result[0]
|
|
|
|
else:
|
|
return False
|
|
|
|
def get_user( sefl, name ):
|
|
c = self.__connect()
|
|
|
|
c.execute( "SELECT * FROM user WHERE name LIKE (?)", ( name ) )
|
|
c.close()
|
|
|
|
return c.fetchall()
|
|
|
|
def __connect( self ):
|
|
self.conn = sqlite3.connect( '' )
|
|
return self.conn.cursor()
|
|
|
|
# start the data base
|
|
|
|
class Users:
|
|
def __int__( self, name, pin ):
|
|
|
|
def creat( self, name, pin, permission ):
|
|
pin = hashlib.md5( pin )
|
|
if db.create_user( name, pin.hexdigest(), permission ):
|
|
return True
|
|
return False
|
|
|
|
def login( self, name, pin ):
|
|
pin = hashlib.md5( pin )
|
|
get_user = db.login_user( name, pin.hexdigest() )
|
|
|
|
if get_user:
|
|
return __check_type( get_user )
|
|
return False
|
|
|
|
def __check_type( self, user ):
|
|
|
|
if user.permission == "client":
|
|
return Cleint( user )
|
|
elif user.permission == "banker"
|
|
return Banker( user )
|
|
|
|
def look_up( self, name ):
|
|
|
|
return db.get_user( name )
|
|
|
|
class account:
|
|
def __init__( self, account_number ):
|
|
self.account = db.account( amount )
|
|
|
|
def view( self ):
|
|
return self.account
|
|
|
|
def withdraw( self, amount ):
|
|
if amount < self.amount.balance:
|
|
db.account_update( self.account.number, amount, withdraw )
|
|
|
|
def deposit( self, amount ):
|
|
db.account_update( self.account.number, amount, deposit )
|
|
|
|
|
|
def transfer( self, amount, to_account_number ):
|
|
db.account_update( self.account.number, amount, transfer )
|
|
db.account_update( to_account_number, amount, transfer )
|
|
|
|
class client:
|
|
def __init__( self ):
|
|
self.accounts = account()
|
|
|
|
def view_all_accounts( self ):
|
|
return self.accounts
|
|
|
|
class banker( user ):
|
|
|
|
def __init__( self ):
|
|
pass
|
|
|
|
def view_all_users( self ):
|
|
pass
|
|
|
|
def view_user_acconts( self ):
|
|
pass
|
|
|
|
def current_account( self ):
|
|
pass
|
|
|