Sistema di Login teoricamente completo. Nel main la classe LoginData si occupa di fare tutto. Per richiamare chi è loggato basta chiamare il metodo .getUserName. Per richiamre il tipo di account .getType. Per stamapre le info di chi è loggato .getUserDataInfo

This commit is contained in:
2013-12-17 02:12:22 +01:00
parent 148676ba75
commit d2cb67f169
5 changed files with 173 additions and 16 deletions

View File

@@ -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<Entry> database = (ArrayList<Entry>) 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<Entry> database = (ArrayList<Entry>) 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<Entry> database = (ArrayList<Entry>) 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<Entry> database = new ArrayList<Entry>();
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();
}
}