diff --git a/it/unisa/info13d/Login/Access.java b/it/unisa/info13d/Login/Access.java index 5c117be..604f464 100644 --- a/it/unisa/info13d/Login/Access.java +++ b/it/unisa/info13d/Login/Access.java @@ -1,6 +1,7 @@ package it.unisa.info13d.Login; -import java.io.InputStreamReader; +import java.io.*; +import java.util.ArrayList; import java.util.Scanner; /** @@ -16,7 +17,7 @@ public class Access { * @param set_user_logged_here dove memorizzare il nome dell'utente loggato o registrato * @return false se Amministratore, true se Utente */ - public static boolean get_access (String set_user_logged_here){ + public static boolean get_access (LoggedUser set_user_logged_here) throws FileNotFoundException,IOException,ClassNotFoundException{ System.out.println("Benvenuto"); Scanner reader = new Scanner(System.in); @@ -40,7 +41,7 @@ public class Access { - protected static boolean login(String set_user_logged_here){ + protected static boolean login(LoggedUser set_user_logged_here) throws FileNotFoundException,IOException,ClassNotFoundException{ Scanner reader = new Scanner(System.in); String name; @@ -52,7 +53,7 @@ public class Access { password = reader.nextLine(); for (; !(search_username (name,password)) ;){ - System.out.println("Dati non trovati. Vuoi Registrarti ?: Y/N"); + System.out.println("Username e/o password non trovati. Vuoi Registrarti ?: Y/N"); String choice; choice = reader.nextLine(); @@ -72,12 +73,13 @@ public class Access { password = reader.nextLine(); } - set_user_logged_here = name; + set_user_logged_here.logged_user = name; + System.out.println("Logged"); return getAccountType(name); } - protected static boolean register( String set_user_logged_here ){ + protected static boolean register ( LoggedUser set_user_logged_here ) throws FileNotFoundException,IOException,ClassNotFoundException{ Scanner reader = new Scanner(System.in); String name; @@ -92,8 +94,8 @@ public class Access { store_data(name,password); System.out.println("Registered and Logged"); - set_user_logged_here = name; - return false; + set_user_logged_here.logged_user = name; + return true; } @@ -103,10 +105,27 @@ public class Access { * @param in_password * @return true if math found, false elsewhere */ - protected static boolean search_username (String in_name, String in_password){ + protected static boolean search_username (String in_name, String in_password) throws FileNotFoundException,IOException,ClassNotFoundException{ - return false; + File f_data = new File("user_db"); + if ( (f_data.exists())){ + ObjectInputStream reader = new ObjectInputStream(new FileInputStream(f_data)); + ArrayList database = (ArrayList) reader.readObject(); + for (int i = 0 ; i < database.size();++i){ + if ( + database.get(i).getUser().equals( in_name) && + database.get(i).getPassword().equals(in_password) + ) + { + reader.close(); + return true; + } + } + reader.close(); + + } + return false; } @@ -115,9 +134,24 @@ public class Access { * @param in_name * @return type of account (admin or user) */ - protected static boolean getAccountType(String in_name){ + protected static boolean getAccountType(String in_name) throws FileNotFoundException,IOException,ClassNotFoundException{ - return true; + File f_data = new File("user_db"); + if ( (f_data.exists())){ + ObjectInputStream reader = new ObjectInputStream(new FileInputStream(f_data)); + ArrayList database = (ArrayList) reader.readObject(); + for (int i = 0 ; i < database.size();++i){ + if ( database.get(i).getUser().equals( in_name) ) + { + reader.close(); + return database.get(i).getType(); + + } + } + reader.close(); + + } + return false; } /** @@ -126,9 +160,31 @@ public class Access { * @param in_nome * @param in_password */ - protected static void store_data (String in_nome, String in_password){ + protected static void store_data (String in_nome, String in_password) throws FileNotFoundException,IOException,ClassNotFoundException{ + File f_data = new File("user_db"); + if ( (f_data.exists())){ + //aggiungi dati al database + ObjectInputStream reader = new ObjectInputStream(new FileInputStream(f_data)); + ArrayList database = (ArrayList) reader.readObject(); + database.add(new Entry(in_nome,in_password,true)); + reader.close(); + ObjectOutputStream writer = new ObjectOutputStream(new FileOutputStream(f_data)); + writer.writeObject(database); + writer.close(); + }else{ + //crea nuovo database e poi memorizza + + ArrayList database = new ArrayList(); + database.add(new Entry("admin","admin",false)); + database.add(new Entry(in_nome,in_password,true)); + + ObjectOutputStream writer = new ObjectOutputStream(new FileOutputStream(f_data)); + writer.writeObject(database); + writer.close(); + + } } diff --git a/it/unisa/info13d/Login/Entry.java b/it/unisa/info13d/Login/Entry.java new file mode 100644 index 0000000..5a9b858 --- /dev/null +++ b/it/unisa/info13d/Login/Entry.java @@ -0,0 +1,35 @@ +package it.unisa.info13d.Login; + +import java.io.Serializable; + +/** + * Created with MONSTER. + * User: xgiovio + * Date: 17/12/13 + * Time: 0.38 + */ +public class Entry implements Serializable{ + + public Entry (String in_user, String in_password, boolean in_type) { + user = in_user; + password = in_password; + type = in_type; + } + + public String getUser() { + return user; + } + + public String getPassword() { + return password; + } + + public boolean getType() { + return type; + } + + private String user; + private String password; + private boolean type; + +} diff --git a/it/unisa/info13d/Login/LoggedUser.java b/it/unisa/info13d/Login/LoggedUser.java new file mode 100644 index 0000000..5d62f5d --- /dev/null +++ b/it/unisa/info13d/Login/LoggedUser.java @@ -0,0 +1,11 @@ +package it.unisa.info13d.Login; + +/** + * Created with MONSTER. + * User: xgiovio + * Date: 17/12/13 + * Time: 1.41 + */ +public class LoggedUser { + public String logged_user = "null"; +} diff --git a/it/unisa/info13d/Login/LoginData.java b/it/unisa/info13d/Login/LoginData.java new file mode 100644 index 0000000..98c96a8 --- /dev/null +++ b/it/unisa/info13d/Login/LoginData.java @@ -0,0 +1,49 @@ +package it.unisa.info13d.Login; + +import java.io.FileNotFoundException; +import java.io.IOException; + +/** + * Created with MONSTER. + * User: xgiovio + * Date: 17/12/13 + * Time: 1.47 + */ +public class LoginData { + + public LoginData () throws FileNotFoundException,IOException,ClassNotFoundException{ + + LoggedUser logged_user = new LoggedUser(); + boolean AccountType = true; + AccountType = Access.get_access(logged_user); + + type = convert_type (AccountType); + username = logged_user.logged_user; + + } + + protected String convert_type (boolean value){ + if (value == false) + return "Admin"; + return "Client"; + } + + public String getUsername() { + return username; + } + + public String getType() { + return type; + } + + public void getUserDataInfo (){ + + System.out.println("***************************************"); + System.out.println("Utente Loggato : " + username); + System.out.println("AccoutType : " + type ); + System.out.println("***************************************"); + } + + private String username; + private String type; +} diff --git a/it/unisa/info13d/Main.java b/it/unisa/info13d/Main.java index 28e4248..c1dae91 100644 --- a/it/unisa/info13d/Main.java +++ b/it/unisa/info13d/Main.java @@ -1,13 +1,19 @@ package it.unisa.info13d; import it.unisa.info13d.Login.Access; +import it.unisa.info13d.Login.LoggedUser; +import it.unisa.info13d.Login.LoginData; + +import java.io.FileNotFoundException; +import java.io.IOException; public class Main { - public static void main(String[] args) { + public static void main(String[] args) throws FileNotFoundException,IOException,ClassNotFoundException { + + LoginData login = new LoginData(); + login.getUserDataInfo(); - String logged_user = "null"; - Access.get_access(logged_user); } }