Skip to content

Commit aae825e

Browse files
Added password-manager
1 parent 20f03de commit aae825e

File tree

2 files changed

+94
-0
lines changed

2 files changed

+94
-0
lines changed

password-manager/password.py

+94
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
from sqlalchemy import create_engine
2+
from sqlalchemy import MetaData
3+
from sqlalchemy import Table, Column
4+
from sqlalchemy import String, DateTime
5+
6+
class DataBaseInitializer(object):
7+
""" This initializes the database and give basic facilities sql queries
8+
for the table"""
9+
10+
def __init__(self):
11+
try:
12+
self.engine = create_engine('sqlite:///test.db')
13+
except Exception as e:
14+
print("Unable to load the database! " + str(e))
15+
16+
def read(self, username=None, password=None):
17+
if username:
18+
result = self.engine.execute(
19+
'select Username, Password from PasswordManager where\
20+
username=:uname', uname=username)
21+
for row in result:
22+
print(row)
23+
elif password:
24+
result = self.engine.execute(
25+
'select Username, Password from PasswordManager where\
26+
passc=:password', passc=password)
27+
for row in result:
28+
print(row)
29+
else:
30+
result = self.engine.execute('select * from PasswordManager')
31+
for row in result:
32+
print(row)
33+
34+
def write(self, uname, passcode):
35+
if uname == "" or passcode == "":
36+
print("Fill Username and Password fields")
37+
return None
38+
else:
39+
self.engine.execute(
40+
'insert into PasswordManager (Username, Password) values\
41+
(:name,:passc)', name=uname, passc=passcode)
42+
43+
def remove(self, uname):
44+
if uname == "":
45+
print("Error! supply username to remove..")
46+
return None
47+
else:
48+
self.engine.execute(
49+
'delete from PasswordManager where Username=:name', name=uname)
50+
51+
52+
class TableOperator(DataBaseInitializer):
53+
# TODO: More Table operations
54+
55+
def __init__(self):
56+
self.interface = DataBaseInitializer()
57+
self.metadata = MetaData()
58+
59+
def PasswordTableGenerator(self):
60+
self.RecordTable = Table(
61+
'PasswordManager', self.metadata,
62+
Column('Username', String),
63+
Column('Password', String, primary_key=True),
64+
Column('SiteInfo', String),
65+
Column('timestamp', DateTime),
66+
)
67+
self.metadata.create_all(self.interface.engine)
68+
69+
def writer(self, username, password):
70+
self.interface.write(username, password)
71+
72+
def reader(self, username=None, password=None):
73+
self.interface.read(username, password)
74+
75+
def remove(self, username=None):
76+
self.interface.remove(username)
77+
78+
def dropper(self):
79+
self.RecordTable.drop(self.interface.engine)
80+
81+
82+
def main():
83+
operator = TableOperator()
84+
operator.PasswordTableGenerator()
85+
operator.reader()
86+
#operator.writer('Chirag', 'qwertyuiop')
87+
operator.reader('Chirag')
88+
operator.reader('qwertyuiop')
89+
#operator.remove('rasadajseq')
90+
#operator.dropper()
91+
92+
93+
if __name__ == '__main__':
94+
main()

password-manager/test.db

3 KB
Binary file not shown.

0 commit comments

Comments
 (0)