switched to Users lib
This commit is contained in:
parent
a46725cf03
commit
f06bfe2030
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
Users::Users(/* args */)
|
Users::Users(/* args */)
|
||||||
{
|
{
|
||||||
this->userdb.insert(user_account{.uid = 012345, .first_name = "John", .last_name = "Doe", .rfid_uid = "8C 75 6C 17", .user_pin = "2424"});
|
this->_userdb.insert(user_account{.uid = 012345, .first_name = "John", .last_name = "Doe", .rfid_uid = "8C 75 6C 17", .user_pin = "2424"});
|
||||||
this->userdb.insert(user_account{.uid = 010202, .first_name = "Max", .last_name = "Mustermann and Sons", .rfid_uid = "D3 4E 03 0B", .user_pin = "1212"});
|
this->_userdb.insert(user_account{.uid = 010202, .first_name = "Max", .last_name = "Mustermann and Sons", .rfid_uid = "D3 4E 03 0B", .user_pin = "1212"});
|
||||||
}
|
}
|
||||||
|
|
||||||
Users::~Users()
|
Users::~Users()
|
||||||
@ -11,14 +11,14 @@ Users::~Users()
|
|||||||
}
|
}
|
||||||
bool Users::checkPin(String pin_code, std::vector<Users::User> *logon_users)
|
bool Users::checkPin(String pin_code, std::vector<Users::User> *logon_users)
|
||||||
{
|
{
|
||||||
std::copy_if(this->userdb.begin(), this->userdb.end(), inserter(*logon_users,logon_users->end()), [=](user_account user)
|
std::copy_if(this->_userdb.begin(), this->_userdb.end(), inserter(*logon_users,logon_users->end()), [=](user_account user)
|
||||||
{ return pin_code == user.user_pin; });
|
{ return pin_code == user.user_pin; });
|
||||||
return (logon_users->size()>0);
|
return (logon_users->size()>0);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Users::checkRfid(String rfid_code, std::vector<Users::User> *logon_users)
|
bool Users::checkRfid(String rfid_code, std::vector<Users::User> *logon_users)
|
||||||
{
|
{
|
||||||
std::copy_if(this->userdb.begin(), this->userdb.end(), inserter(*logon_users,logon_users->end()), [=](user_account user)
|
std::copy_if(this->_userdb.begin(), this->_userdb.end(), inserter(*logon_users,logon_users->end()), [=](user_account user)
|
||||||
{ return rfid_code == user.rfid_uid; });
|
{ return rfid_code == user.rfid_uid; });
|
||||||
return (logon_users->size()>0);
|
return (logon_users->size()>0);
|
||||||
}
|
}
|
12
src/Users.h
12
src/Users.h
@ -4,6 +4,13 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
class Users
|
class Users
|
||||||
{
|
{
|
||||||
|
public:
|
||||||
|
enum ATTRIBUTES{
|
||||||
|
FIRST_NAME,
|
||||||
|
LAST_NAME,
|
||||||
|
RFID_UID,
|
||||||
|
USER_PIN
|
||||||
|
};
|
||||||
typedef struct User
|
typedef struct User
|
||||||
{
|
{
|
||||||
unsigned long uid;
|
unsigned long uid;
|
||||||
@ -16,7 +23,7 @@ typedef struct User
|
|||||||
} user_account;
|
} user_account;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::set<User> userdb;
|
std::set<User> _userdb;
|
||||||
|
|
||||||
/* data */
|
/* data */
|
||||||
public:
|
public:
|
||||||
@ -24,4 +31,7 @@ public:
|
|||||||
~Users();
|
~Users();
|
||||||
bool checkRfid(String rfid_code, std::vector<Users::User> *logon_users);
|
bool checkRfid(String rfid_code, std::vector<Users::User> *logon_users);
|
||||||
bool checkPin(String pin_code, std::vector<Users::User> *logon_users);
|
bool checkPin(String pin_code, std::vector<Users::User> *logon_users);
|
||||||
|
bool addUser(unsingend long id, String first_name, String last_name, String rifd_uid, String user_pin);
|
||||||
|
bool delUser(unsingend long id);
|
||||||
|
bool updateUser(unsingend long id, ATTRIBUTES attr, String value);
|
||||||
};
|
};
|
33
src/main.cpp
33
src/main.cpp
@ -21,16 +21,8 @@ IPAddress gateway(192,168,4,9);
|
|||||||
IPAddress subnet(255, 255, 255, 0);
|
IPAddress subnet(255, 255, 255, 0);
|
||||||
|
|
||||||
// User DB
|
// User DB
|
||||||
|
Users users;
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
String uid;
|
|
||||||
String first_name;
|
|
||||||
String last_name;
|
|
||||||
String rfid_uid;
|
|
||||||
String user_pin;
|
|
||||||
} user_account;
|
|
||||||
std::vector<user_account> userdb;
|
|
||||||
void setup()
|
void setup()
|
||||||
{
|
{
|
||||||
Serial.begin(9600);
|
Serial.begin(9600);
|
||||||
@ -41,32 +33,19 @@ void setup()
|
|||||||
keyboard.begin(&Wire);
|
keyboard.begin(&Wire);
|
||||||
rfid.begin();
|
rfid.begin();
|
||||||
iface.begin(&keyboard);
|
iface.begin(&keyboard);
|
||||||
userdb.push_back(user_account{.uid = "010202", .first_name = "Max", .last_name = "Mustermann and Sons", .rfid_uid = "D3 4E 03 0B", .user_pin = "1212"});
|
|
||||||
userdb.push_back(user_account{.uid = "012345", .first_name = "John", .last_name = "Doe", .rfid_uid = "8C 75 6C 17", .user_pin = "2424"});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop()
|
void loop()
|
||||||
{
|
{
|
||||||
keyboard.scanAsync();
|
keyboard.scanAsync();
|
||||||
rfid.scan();
|
rfid.scan();
|
||||||
std::vector<user_account> logon_users;
|
std::vector<Users::User> logon_users;
|
||||||
if (iface.pinAvailable())
|
if (iface.pinAvailable() && !users.checkPin(iface.getPin(), &logon_users))
|
||||||
{
|
|
||||||
String entered_pin = iface.getPin();
|
|
||||||
std::copy_if(userdb.begin(), userdb.end(), std::back_inserter(logon_users), [=](user_account user)
|
|
||||||
{ return entered_pin == user.user_pin; });
|
|
||||||
if (logon_users.size() == 0)
|
|
||||||
iface.showMessage("Login failed!", "-> Pin incorrect", 3000);
|
iface.showMessage("Login failed!", "-> Pin incorrect", 3000);
|
||||||
}
|
else if (rfid.available() && !users.checkRfid(rfid.getID(), &logon_users))
|
||||||
else if (rfid.available())
|
|
||||||
{
|
|
||||||
String rfid_card_uid = rfid.getID();
|
|
||||||
std::copy_if(userdb.begin(), userdb.end(), std::back_inserter(logon_users), [=](user_account user)
|
|
||||||
{ return rfid_card_uid == user.rfid_uid; });
|
|
||||||
if (logon_users.size() == 0)
|
|
||||||
iface.showMessage("Login failed!", "-> Unkown Card",3000);
|
iface.showMessage("Login failed!", "-> Unkown Card",3000);
|
||||||
}
|
else if (logon_users.size() > 0)
|
||||||
if (logon_users.size() > 0)
|
|
||||||
{
|
{
|
||||||
iface.greetUser(logon_users[0].first_name + " " + logon_users[0].last_name);
|
iface.greetUser(logon_users[0].first_name + " " + logon_users[0].last_name);
|
||||||
logon_users.clear();
|
logon_users.clear();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user