class InitGUI(): liberation_font_8 = ("Liberation Sans", 8) liberation_font_10 = ("Liberation Sans", 10) liberation_font_15 = ("Liberation Sans", 15) def __init__(self): self.enc = Encryption() self.grp = RootPasswordWindow(self.enc) self.build() def build(self): self.root = Tk() self.root.geometry("800x622+200+200") self.root.title("SecureMe") self.root.resizable(width=FALSE, height=FALSE) menubar = Menu(self.root) optionsmenu = Menu(menubar, tearoff=0) optionsmenu.add_command(label="Refresh (Ctrl+r)", command=lambda: self.refresh("NONE")) optionsmenu.add_command(label="Exit", command=lambda: self.quitMenu()) menubar.add_cascade(label="Options", menu=optionsmenu) self.root.config(menu=menubar) self.toolbar = ToolBar(self.root, self) style = Style() style.configure("BW.TLabel", foreground="black", background="slate gray", borderwidth=2) mFrame = Frame(self.root, bg="slate gray", padx=25, pady=25) mFrame.pack(fill=BOTH) self.notebook = ttk.Notebook(mFrame, height=500, style="BW.TLabel") primaryFrame = Frame(self.notebook, padx=25, pady=25) usersFrame = Frame(self.notebook, padx=25, pady=25) firewallFrame = Frame(self.notebook, padx=25, pady=25) servicesFrame = Frame(self.notebook, padx=25, pady=25) processesFrame = Frame(self.notebook, padx=25, pady=25) self.notebook.add(primaryFrame, text='Primary') self.notebook.add(usersFrame, text='Users') self.notebook.add(firewallFrame, text='Firewall') self.notebook.add(servicesFrame, text='Services') self.notebook.add(processesFrame, text='Processes') self.notebook.pack(fill=X) self.updatebar = Frame(self.root) self.updatebar.pack(side=BOTTOM, fill=X) self.left_label = Label(self.updatebar, text="Status: None") self.left_label.pack(side=LEFT, fill=X) # Primary Panel primary_label = Label(primaryFrame, text='Primary Settings', font=self.liberation_font_15) primary_label.grid(row=0, column=0, columnspan=2, sticky=N + S + E + W) actionspanel = LabelFrame(primaryFrame, text='System Actions', padx=10, pady=10) actionspanel.grid(row=1, column=0, sticky=E + N, padx=25, pady=25) openterminal = Button(actionspanel, text='Open Terminal', command=lambda: self.openTerminal()) openterminal.pack(padx=5, pady=5) opencontrol = Button(actionspanel, text='Open Control Panel', command=lambda: self.openControlPanel()) opencontrol.pack(padx=5, pady=5) shutdown = Button(actionspanel, text='Shutdown', command=lambda: self.shutdown()) shutdown.pack(padx=5, pady=5) rebootButton = Button(actionspanel, text='Reboot', command=lambda: self.reboot()) rebootButton.pack(padx=5, pady=5) updatespanel = LabelFrame(primaryFrame, text='System Updates', padx=10, pady=10) updatespanel.grid(row=1, column=1, sticky=W + N, padx=25, pady=25) update_button = Button(updatespanel, text='Basic Update', command=lambda: self.basicUpdate()) update_button.pack(padx=5, pady=5) upgrade_button = Button(updatespanel, text='Basic Upgrade', command=lambda: self.basicUpgrade()) upgrade_button.pack(padx=5, pady=5) packageupdate_button = Button(updatespanel, text='Package Update', command=lambda: self.packageUpdate()) packageupdate_button.pack(padx=5, pady=5) # Users Panel users_label = Label(usersFrame, text='User Security Settings', font=self.liberation_font_15) users_label.pack() editusers = Frame(usersFrame) editusers.pack() addusr = Button(editusers, text='Add User...', command=lambda: self.addUser()) addusr.grid(row=0, column=0, padx=5, pady=5) delusr = Button(editusers, text='Del User...', command=lambda: self.delUser()) delusr.grid(row=0, column=1, padx=5, pady=5) userpanel = LabelFrame(usersFrame, text="Users", padx=10, pady=10) userpanel.pack(side=TOP, fill=BOTH) self.uText = self.getUserText() self.users_listlabel = Label(userpanel, text=self.uText, padx=10, pady=10) self.users_listlabel.pack(side=LEFT) groupspanel = LabelFrame(usersFrame, text="Groups", padx=10, pady=10) groupspanel.pack(side=TOP, fill=BOTH) self.gText = self.getGroupText() self.groups_text = CustomText(groupspanel) self.groups_text.resetText(self.gText) self.groups_text.type(DISABLED) self.groups_text.pack(fill=BOTH) # Firewall Label firewall_label = Label(firewallFrame, text='Firewall Settings', font=self.liberation_font_15) firewall_label.pack() edFrame = Frame(firewallFrame) fwEnable = Button(edFrame, text='Enable', command=lambda: self.enableFirewall()) fwEnable.pack(side=LEFT, padx=10, pady=10, fill=X) fwDisable = Button(edFrame, text='Disable', command=lambda: self.disableFirewall()) fwDisable.pack(side=RIGHT, padx=10, pady=10, fill=X) edFrame.pack() firewallpanel = LabelFrame(firewallFrame, text='Firewall Status', height=100, width=450, padx=10, pady=10) firewallpanel.pack(side=TOP, fill=X) self.fText = self.getFirewallStatus() self.firewall_text = CustomText(firewallpanel) self.firewall_text.resetText(self.fText) self.firewall_text.type(DISABLED) self.firewall_text.pack(fill=X) # Services Pane services_label = Label(servicesFrame, text='System Services', font=self.liberation_font_15) services_label.pack() servicespanel = LabelFrame(servicesFrame, text="Services", padx=10, pady=10) servicespanel.pack(side=TOP, fill=BOTH) self.sText = self.getServicesText() self.services_text = CustomText(servicespanel) self.services_text.resetText(self.sText) self.services_text.type(DISABLED) self.services_text.pack(fill=BOTH) # Processes Pane processes_label = Label(processesFrame, text='System Processes', font=self.liberation_font_15) processes_label.pack() processespanel = LabelFrame(processesFrame, text='Processes', padx=10, pady=10) processespanel.pack(side=TOP, fill=BOTH) self.pText = self.getProcessesText() self.processes_text = CustomText(processespanel) self.processes_text.resetText(self.pText) self.processes_text.type(DISABLED) self.processes_text.pack(fill=BOTH) self.root.bind('<Control-r>', self.refresh) self.root.mainloop() def refresh(self, e): self.setLeftLabel("Refreshing...") self.uText = self.getUserText() self.gText = self.getGroupText() self.sText = self.getServicesText() self.fText = self.getFirewallStatus() self.pText = self.getProcessesText() self.users_listlabel.config(text=self.uText) self.groups_text.type(NORMAL) self.groups_text.resetText(self.gText) self.groups_text.type(DISABLED) self.services_text.type(NORMAL) self.services_text.resetText(self.sText) self.services_text.type(DISABLED) self.firewall_text.type(NORMAL) self.firewall_text.resetText(self.fText) self.firewall_text.type(DISABLED) self.processes_text.type(NORMAL) self.processes_text.resetText(self.pText) self.processes_text.type(DISABLED) self.resetLeftLabel() def setLeftLabel(self, s): self.left_label.config(text=("Status: " + s)) self.root.update() def resetLeftLabel(self): self.left_label.config(text="Status: None") self.root.update() def getPassword(self): pwd = self.enc.decrypt() return pwd def getUserText(self): self.setLeftLabel("Getting Users...") u = Users() retstr = u.getUsers() ret = '' for i in retstr: ret += "User: "******"\n" self.resetLeftLabel() return ret def getGroupText(self): self.setLeftLabel("Getting Groups...") g = Groups() retstr = g.getGroups() ret = '' for i in retstr: ret += i + "\n" self.resetLeftLabel() return ret def getServicesText(self): self.setLeftLabel("Getting Services...") s = Services() retstr = s.getservicesbasic() self.resetLeftLabel() return retstr def getFirewallStatus(self): self.setLeftLabel("Getting Firewall Status...") f = Firewall() retstr = f.getStatus(self.enc.decrypt()) self.resetLeftLabel() return retstr def getProcessesText(self): self.setLeftLabel("Getting Processes...") p = Processes() retstr = p.getprocesses() self.resetLeftLabel() return retstr def basicUpdate(self): if tkMessageBox.askyesno("SecureMe - Update", "Proceed with update?") == True: self.setLeftLabel("Updating Machine...") ud = Update() ud.update(self.enc) self.resetLeftLabel() else: pass def basicUpgrade(self): if tkMessageBox.askyesno("SecureMe - Upgrade", "Proceed with upgrade?") == True: self.setLeftLabel("Upgrading Machine...") ud = Update() ud.upgrade(self.enc) self.resetLeftLabel() else: pass def packageUpdate(self): if tkMessageBox.askyesno("SecureMe - Package Update", "Proceed with package update?") == True: self.setLeftLabel("Updating Packages...") ud = Update() ud.updateall(self.enc) self.resetLeftLabel() else: pass def enableFirewall(self): if tkMessageBox.askyesno( "SecureMe - Firewall", "Are you sure you want to enable the firewall?") == True: self.setLeftLabel("Enabling Firewall...") f = Firewall() f.enable(self.getPassword()) self.refresh("NONE") self.resetLeftLabel() else: pass def disableFirewall(self): if tkMessageBox.askyesno( "SecureMe - Firewall", "Are you sure you want to disable the firewall?") == True: self.setLeftLabel("Disabling Firewall...") f = Firewall() f.disable(self.getPassword()) self.refresh("NONE") else: pass def openTerminal(self): self.setLeftLabel("Opening Terminal...") s = Linux() s.terminal() self.resetLeftLabel() def openControlPanel(self): self.setLeftLabel("Opening Control Panel") s = Linux() s.systemsettings() self.resetLeftLabel() def shutdown(self): if tkMessageBox.askyesno( "SecureMe - Power", "Are you sure you would like to power off?") == True: self.setLeftLabel("Shutting Down...") s = Linux() s.shutdown(2) self.resetLeftLabel() else: pass def reboot(self): if tkMessageBox.askyesno( "SecureMe - Power", "Are you sure you would like to reboot?") == True: self.setLeftLabel("Rebooting...") s = Linux() s.reboot() self.resetLeftLabel() else: pass def addUser(self): self.setLeftLabel("Adding user...") a = AddUser() def delUser(self): self.setLeftLabel("Deleting user...") def quitMenu(self): if tkMessageBox.askyesno("Secure Me - Quit?", "Are you sure you want to quit?") == True: sys.exit(0) else: pass
class InitGUI(): liberation_font_8 = ("Liberation Sans", 8) liberation_font_10 = ("Liberation Sans", 10) liberation_font_15 = ("Liberation Sans", 15) def __init__(self): self.enc = Encryption() self.grp = RootPasswordWindow(self.enc) self.build() def build(self): self.root = Tk() self.root.geometry("800x622+200+200") self.root.title("SecureMe") self.root.resizable(width=FALSE, height=FALSE) menubar = Menu(self.root) optionsmenu = Menu(menubar, tearoff=0) optionsmenu.add_command(label="Refresh (Ctrl+r)", command=lambda : self.refresh("NONE")) optionsmenu.add_command(label="Exit", command=lambda : self.quitMenu()) menubar.add_cascade(label="Options", menu=optionsmenu) self.root.config(menu=menubar) self.toolbar = ToolBar(self.root, self) style = Style() style.configure("BW.TLabel", foreground="black", background="slate gray", borderwidth=2) mFrame = Frame(self.root, bg="slate gray", padx=25, pady=25) mFrame.pack(fill=BOTH) self.notebook = ttk.Notebook(mFrame, height=500, style="BW.TLabel") primaryFrame = Frame(self.notebook, padx=25, pady=25) usersFrame = Frame(self.notebook, padx=25, pady=25) firewallFrame = Frame(self.notebook, padx=25, pady=25) servicesFrame = Frame(self.notebook, padx=25, pady=25) processesFrame = Frame(self.notebook, padx=25, pady=25) self.notebook.add(primaryFrame, text='Primary') self.notebook.add(usersFrame, text='Users') self.notebook.add(firewallFrame, text='Firewall') self.notebook.add(servicesFrame, text='Services') self.notebook.add(processesFrame, text='Processes') self.notebook.pack(fill=X) self.updatebar = Frame(self.root) self.updatebar.pack(side=BOTTOM, fill=X) self.left_label = Label(self.updatebar, text="Status: None") self.left_label.pack(side=LEFT, fill=X) # Primary Panel primary_label = Label(primaryFrame, text='Primary Settings', font=self.liberation_font_15) primary_label.grid(row=0, column=0, columnspan=2, sticky=N+S+E+W) actionspanel = LabelFrame(primaryFrame, text='System Actions', padx=10, pady=10) actionspanel.grid(row=1, column=0, sticky=E+N, padx=25, pady=25) openterminal = Button(actionspanel, text='Open Terminal', command=lambda : self.openTerminal()) openterminal.pack(padx=5, pady=5) opencontrol = Button(actionspanel, text='Open Control Panel', command=lambda : self.openControlPanel()) opencontrol.pack(padx=5, pady=5) shutdown = Button(actionspanel, text='Shutdown', command=lambda : self.shutdown()) shutdown.pack(padx=5, pady=5) rebootButton = Button(actionspanel, text='Reboot', command=lambda : self.reboot()) rebootButton.pack(padx=5, pady=5) updatespanel = LabelFrame(primaryFrame, text='System Updates', padx=10, pady=10) updatespanel.grid(row=1, column=1, sticky=W+N, padx=25, pady=25) update_button = Button(updatespanel, text='Basic Update', command=lambda : self.basicUpdate()) update_button.pack(padx=5, pady=5) upgrade_button = Button(updatespanel, text='Basic Upgrade', command=lambda : self.basicUpgrade()) upgrade_button.pack(padx=5, pady=5) packageupdate_button = Button(updatespanel, text='Package Update', command=lambda : self.packageUpdate()) packageupdate_button.pack(padx=5, pady=5) # Users Panel users_label = Label(usersFrame, text='User Security Settings', font=self.liberation_font_15) users_label.pack() editusers = Frame(usersFrame) editusers.pack() addusr = Button(editusers, text='Add User...', command=lambda : self.addUser()) addusr.grid(row=0, column=0, padx=5, pady=5) delusr = Button(editusers, text='Del User...', command=lambda : self.delUser()) delusr.grid(row=0, column=1, padx=5, pady=5) userpanel = LabelFrame(usersFrame, text="Users", padx=10, pady=10) userpanel.pack(side=TOP, fill=BOTH) self.uText = self.getUserText() self.users_listlabel = Label(userpanel, text=self.uText, padx=10, pady=10) self.users_listlabel.pack(side=LEFT) groupspanel = LabelFrame(usersFrame, text="Groups", padx=10, pady=10) groupspanel.pack(side=TOP, fill=BOTH) self.gText = self.getGroupText() self.groups_text = CustomText(groupspanel) self.groups_text.resetText(self.gText) self.groups_text.type(DISABLED) self.groups_text.pack(fill=BOTH) # Firewall Label firewall_label = Label(firewallFrame, text='Firewall Settings', font=self.liberation_font_15) firewall_label.pack() edFrame = Frame(firewallFrame) fwEnable = Button(edFrame, text='Enable', command=lambda : self.enableFirewall()) fwEnable.pack(side=LEFT, padx=10, pady=10, fill=X) fwDisable = Button(edFrame, text='Disable', command=lambda : self.disableFirewall()) fwDisable.pack(side=RIGHT, padx=10, pady=10, fill=X) edFrame.pack() firewallpanel = LabelFrame(firewallFrame, text='Firewall Status', height=100, width=450, padx=10, pady=10) firewallpanel.pack(side=TOP, fill=X) self.fText = self.getFirewallStatus() self.firewall_text = CustomText(firewallpanel) self.firewall_text.resetText(self.fText) self.firewall_text.type(DISABLED) self.firewall_text.pack(fill=X) # Services Pane services_label = Label(servicesFrame, text='System Services', font=self.liberation_font_15) services_label.pack() servicespanel = LabelFrame(servicesFrame, text="Services", padx=10, pady=10) servicespanel.pack(side=TOP, fill=BOTH) self.sText = self.getServicesText() self.services_text = CustomText(servicespanel) self.services_text.resetText(self.sText) self.services_text.type(DISABLED) self.services_text.pack(fill=BOTH) # Processes Pane processes_label = Label(processesFrame, text='System Processes', font=self.liberation_font_15) processes_label.pack() processespanel = LabelFrame(processesFrame, text='Processes', padx=10, pady=10) processespanel.pack(side=TOP, fill=BOTH) self.pText = self.getProcessesText() self.processes_text = CustomText(processespanel) self.processes_text.resetText(self.pText) self.processes_text.type(DISABLED) self.processes_text.pack(fill=BOTH) self.root.bind('<Control-r>', self.refresh) self.root.mainloop() def refresh(self, e): self.setLeftLabel("Refreshing...") self.uText = self.getUserText() self.gText = self.getGroupText() self.sText = self.getServicesText() self.fText = self.getFirewallStatus() self.pText = self.getProcessesText() self.users_listlabel.config(text=self.uText) self.groups_text.type(NORMAL) self.groups_text.resetText(self.gText) self.groups_text.type(DISABLED) self.services_text.type(NORMAL) self.services_text.resetText(self.sText) self.services_text.type(DISABLED) self.firewall_text.type(NORMAL) self.firewall_text.resetText(self.fText) self.firewall_text.type(DISABLED) self.processes_text.type(NORMAL) self.processes_text.resetText(self.pText) self.processes_text.type(DISABLED) self.resetLeftLabel() def setLeftLabel(self, s): self.left_label.config(text=("Status: "+s)) self.root.update() def resetLeftLabel(self): self.left_label.config(text="Status: None") self.root.update() def getPassword(self): pwd = self.enc.decrypt() return pwd def getUserText(self): self.setLeftLabel("Getting Users...") u = Users() retstr = u.getUsers() ret = '' for i in retstr: ret += "User: "******"\n" self.resetLeftLabel() return ret def getGroupText(self): self.setLeftLabel("Getting Groups...") g = Groups() retstr = g.getGroups() ret = '' for i in retstr: ret += i + "\n" self.resetLeftLabel() return ret def getServicesText(self): self.setLeftLabel("Getting Services...") s = Services() retstr = s.getservicesbasic() self.resetLeftLabel() return retstr def getFirewallStatus(self): self.setLeftLabel("Getting Firewall Status...") f = Firewall() retstr = f.getStatus(self.enc.decrypt()) self.resetLeftLabel() return retstr def getProcessesText(self): self.setLeftLabel("Getting Processes...") p = Processes() retstr = p.getprocesses() self.resetLeftLabel() return retstr def basicUpdate(self): if tkMessageBox.askyesno("SecureMe - Update", "Proceed with update?") == True: self.setLeftLabel("Updating Machine...") ud = Update() ud.update(self.enc) self.resetLeftLabel() else: pass def basicUpgrade(self): if tkMessageBox.askyesno("SecureMe - Upgrade", "Proceed with upgrade?") == True: self.setLeftLabel("Upgrading Machine...") ud = Update() ud.upgrade(self.enc) self.resetLeftLabel() else: pass def packageUpdate(self): if tkMessageBox.askyesno("SecureMe - Package Update", "Proceed with package update?") == True: self.setLeftLabel("Updating Packages...") ud = Update() ud.updateall(self.enc) self.resetLeftLabel() else: pass def enableFirewall(self): if tkMessageBox.askyesno("SecureMe - Firewall", "Are you sure you want to enable the firewall?") == True: self.setLeftLabel("Enabling Firewall...") f = Firewall() f.enable(self.getPassword()) self.refresh("NONE") self.resetLeftLabel() else: pass def disableFirewall(self): if tkMessageBox.askyesno("SecureMe - Firewall", "Are you sure you want to disable the firewall?") == True: self.setLeftLabel("Disabling Firewall...") f = Firewall() f.disable(self.getPassword()) self.refresh("NONE") else: pass def openTerminal(self): self.setLeftLabel("Opening Terminal...") s = Linux() s.terminal() self.resetLeftLabel() def openControlPanel(self): self.setLeftLabel("Opening Control Panel") s = Linux() s.systemsettings() self.resetLeftLabel() def shutdown(self): if tkMessageBox.askyesno("SecureMe - Power", "Are you sure you would like to power off?") == True: self.setLeftLabel("Shutting Down...") s = Linux() s.shutdown(2) self.resetLeftLabel() else: pass def reboot(self): if tkMessageBox.askyesno("SecureMe - Power", "Are you sure you would like to reboot?") == True: self.setLeftLabel("Rebooting...") s = Linux() s.reboot() self.resetLeftLabel() else: pass def addUser(self): self.setLeftLabel("Adding user...") a = AddUser() def delUser(self): self.setLeftLabel("Deleting user...") def quitMenu(self): if tkMessageBox.askyesno("Secure Me - Quit?", "Are you sure you want to quit?") == True: sys.exit(0) else: pass