codice:
###WorkTime|set.py|0.1
from Tkinter import *
from tkMessageBox import *
import pickle
from GeneralSet import ImpostazioniGenerali_Azzeramento
from tkSimpleDialog import *
import hashlib
##Creazione Classe Registrazione
class Register:
#Attributi
Pass=""
HashPass=""
Azienda=""
FileOriginalName=""
File=""
List=()
CodeFile=""
#Attribuzione Attributi
def Attribuzione(self,Pass,Azienda,File):
self.Pass=Pass
self.HashPass=self.CriptPass(Pass)
self.Azienda=Azienda
self.File=File
#Apri File Impostazioni
def SetOpen(self,OpenFileSelect,Modo):
OpenFile=file(OpenFileSelect,Modo)
self.File=OpenFile
#Load List
def LoadList(self,File):
List=pickle.load(File)
return List
#Cripta Password
def CriptPass(self,Pass):
Cripting=hashlib.md5()
Cripting.update(Pass)
FinalCript=Cripting.hexdigest()
return FinalCript
#Controlla Password Registrazione
def CheckPassRegister(self,AdminPass, AdminRePass, Azienda):
if AdminPass != AdminRePass:
showerror("Errore!","Le password non coincidono!")
else:
self.Attribuzione(AdminPass,Azienda,self.File)
self.WriteList(self.FileOriginalName,self.Azienda,self.HashPass)
self.UserCode()
##Creazione Classe Admin
class Admin(Register):
#Attributi
Code=""
#Attribuisci Codice Utente
def AttribuzioneCode(self,File):
OpenFile=file(File,"r")
List=pickle.load(OpenFile)
self.Code=List[0]
OpenFile.close()
#Scrivi Lista Registrazione
def WriteList(self,File,Azienda,HashPass):
OpenFile=file(File,"w")
RegistredGeneralSetList=(Azienda,True,False,False,False,HashPass)
pickle.dump(RegistredGeneralSetList,OpenFile)
OpenFile.close()
Code=self.Code
showinfo("Admin registrato!","Il tuo accaunt admin è stato registrato! Il tuo codice admin è: " + Code)
#Codice Utente
def UserCode(self,File,Code):
List=(Code,)
OpenFile=file(File,"w")
pickle.dump(List,OpenFile)
OpenFile.close()
#Controlla Password Login
def CheckPassLogin(self,Pass,PassSaved):
Hashed=self.CriptPass(Pass)
if Hashed != PassSaved:
showerror("Errore!","La password non coincide!")
print Hashed
print PassSaved
elif Hashed== PassSaved:
print "Logged"
#//OBJ ADMIN
admin=Admin()
admin.FileOriginalName=r"GeneralSet.wktset"##############################################################################################################################
#Apertura File
admin.SetOpen(admin.FileOriginalName,'r')
admin.List=admin.LoadList(admin.File)
#Creazione Finestra Programma
SetRoot=Tk()
SetRoot.title("Impostazioni - WorkTime")
SetRoot.resizable(True,True)
SetRoot['background']="White"
TitleLael=Label(SetRoot,text="Pannello di Impostazioni di WorkTime",bg="White",fg="Red").grid(row=0,column=0)
#Creazione accaunt Admin
if admin.List[1] == False:
#Apertura File Necessari
admin.File.close()
GeneralSetFileW=file(r"GeneralSet.wktset","w")###########################################################################################################
NoLabel=Label(SetRoot,text="Non hai ancora un account admin. Devi crearne uno",bg="White",fg="Blue").grid(row=1,column=0)
#Variabili Registrazione
AdminPass=StringVar()
AdminRePass=StringVar()
Azienda=StringVar()
#Interfaccia Utente
UserLabel=Label(SetRoot,text='Il tuo UserID sarà "admin"',bg="White",fg="Black").grid(row=2,column=0)
PassLabel=Label(SetRoot,text='Password',bg="White",fg="Black").grid(row=3,column=0)
EntryPass=Entry(SetRoot,textvariable=AdminPass,width=20,show="*").grid(row=3,column=1)
RePassLabel=Label(SetRoot,text='Conferma Password',bg="White",fg="Black").grid(row=4,column=0)
EntryPass=Entry(SetRoot,textvariable=AdminRePass,width=20,show="*").grid(row=4,column=1)
PassLabel=Label(SetRoot,text='Nome Azienda',bg="White",fg="Black").grid(row=5,column=0)
EntryPass=Entry(SetRoot,textvariable=Azienda,width=20,).grid(row=5,column=1)
Conferma=Button(SetRoot,text="Conferma",command= lambda: admin.CheckPassRegister(AdminPass.get(),AdminPass.get(),Azienda.get())).grid(column=2,row=6)
#Finestra Password
elif admin.List[1] == True:
AskPassRoot=Tk()
AskPassRoot.title("Admin Password")
AskPassRoot.resizable(True,True)
AskPassRoot['background']="White"
AdminPass=StringVar()
InfoLabel=Label(AskPassRoot,text='Inserisci la Password admin',bg="White",fg="Blue").grid(row=0,column=0)
EntryPass=Entry(AskPassRoot,textvariable=AdminPass,width=20,show="*").grid(row=1,column=0)
Conferma=Button(AskPassRoot,text="Conferma",command=lambda:admin.CheckPassLogin(AdminPass.get(),admin.List[5])).grid(column=2,row=6)
AskPassRoot.mainloop()
SetRoot.mainloop()