removed old classes, included pwa for testing
This commit is contained in:
		
							parent
							
								
									74da018c99
								
							
						
					
					
						commit
						2719314506
					
				
							
								
								
									
										1
									
								
								data/admin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								data/admin
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | admin|admin | ||||||
| @ -1,7 +0,0 @@ | |||||||
| [ |  | ||||||
|     { |  | ||||||
|         "NAME":"Toni", |  | ||||||
|         "PASSWORD":"geheim", |  | ||||||
|         "PIN":1231239 |  | ||||||
|     } |  | ||||||
| ] |  | ||||||
							
								
								
									
										10
									
								
								data/s/a.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								data/s/a.svg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <!-- Generator: Adobe Illustrator 25.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --> | ||||||
|  | <svg version="1.2" baseProfile="tiny" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" | ||||||
|  | 	 x="0px" y="0px" viewBox="0 0 500 500" overflow="visible" xml:space="preserve"> | ||||||
|  | <path fill="#CCCCCC" stroke="#000000" stroke-linecap="round" stroke-miterlimit="10" d="M349.5,421.5h-199c-8.28,0-15-6.72-15-15 | ||||||
|  | 	v-255h229v255C364.5,414.78,357.78,421.5,349.5,421.5z"/> | ||||||
|  | <path fill="#CCCCCC" stroke="#000000" stroke-linecap="round" stroke-miterlimit="10" d="M386.81,99.5H314.5V80.38 | ||||||
|  | 	c0-9.88-8.01-17.88-17.88-17.88h-92.24c-9.88,0-17.88,8.01-17.88,17.88V99.5h-73.31c-5.35,0-9.69,4.34-9.69,9.69v20.62 | ||||||
|  | 	c0,5.35,4.34,9.69,9.69,9.69h273.62c5.35,0,9.69-4.34,9.69-9.69v-20.62C396.5,103.84,392.16,99.5,386.81,99.5z"/> | ||||||
|  | </svg> | ||||||
| After Width: | Height: | Size: 874 B | 
							
								
								
									
										12
									
								
								data/s/b.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								data/s/b.svg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <!-- Generator: Adobe Illustrator 25.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  --> | ||||||
|  | <svg version="1.2" baseProfile="tiny" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" | ||||||
|  | 	 x="0px" y="0px" viewBox="0 0 500 500" overflow="visible" xml:space="preserve"> | ||||||
|  | <polyline fill="#CCCCCC" stroke="#000000" stroke-miterlimit="10" points="181.5,395.5 86.5,395.5 86.5,300.5 "/> | ||||||
|  | <g> | ||||||
|  | 	 | ||||||
|  | 		<rect x="355.37" y="40.63" transform="matrix(0.7071 -0.7071 0.7071 0.7071 31.9147 294.7168)" fill="#CCCCCC" stroke="#000000" stroke-width="1" stroke-miterlimit="9.9999" width="32.69" height="136.4"/> | ||||||
|  | 	 | ||||||
|  | 		<rect x="94.59" y="168.11" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -95.5641 241.9096)" fill="#CCCCCC" stroke="#000000" stroke-width="1" stroke-miterlimit="9.9999" width="299.29" height="136.4"/> | ||||||
|  | </g> | ||||||
|  | </svg> | ||||||
| After Width: | Height: | Size: 881 B | 
							
								
								
									
										1
									
								
								data/s/bundle.45d14.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								data/s/bundle.45d14.css
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								data/s/bundle.f9ad8.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								data/s/bundle.f9ad8.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								data/s/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								data/s/index.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title>doorlock_pwa</title><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-capable" content="yes"><link rel="apple-touch-icon" href="/assets/icons/apple-touch-icon.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#673ab8"><style>*{box-sizing:border-box}html{font-family:Helvetica,sans-serif;font-size:16px}body,html{height:100%}body{background-color:#fff;margin:0;padding:0;width:100%}</style><link href="/bundle.45d14.css" rel="stylesheet" media="only x" onload="this.media='all'"><noscript><link rel="stylesheet" href="/bundle.45d14.css"></noscript></head><body><script defer="defer" src="/bundle.f9ad8.js"></script><script nomodule="" src="/polyfills.058fb.js"></script></body></html> | ||||||
							
								
								
									
										2
									
								
								data/s/polyfills.058fb.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								data/s/polyfills.058fb.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -1,12 +0,0 @@ | |||||||
| <!DOCTYPE html> |  | ||||||
| <html lang="en"> |  | ||||||
| <head> |  | ||||||
|     <meta charset="UTF-8"> |  | ||||||
|     <meta http-equiv="X-UA-Compatible" content="IE=edge"> |  | ||||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0"> |  | ||||||
|     <title>Document</title> |  | ||||||
| </head> |  | ||||||
| <body> |  | ||||||
|     <h1>Error 404: Page not found.</h1> |  | ||||||
| </body> |  | ||||||
| </html> |  | ||||||
| @ -1,12 +0,0 @@ | |||||||
| <!DOCTYPE html> |  | ||||||
| <html lang="en"> |  | ||||||
| <head> |  | ||||||
|     <meta charset="UTF-8"> |  | ||||||
|     <meta http-equiv="X-UA-Compatible" content="IE=edge"> |  | ||||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0"> |  | ||||||
|     <title>Document</title> |  | ||||||
| </head> |  | ||||||
| <body> |  | ||||||
|     <h1>Welcome on ESP8266</h1> |  | ||||||
| </body> |  | ||||||
| </html> |  | ||||||
							
								
								
									
										21
									
								
								src/Config.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								src/Config.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | |||||||
|  | #include "Config.h" | ||||||
|  | 
 | ||||||
|  | Config::Config() | ||||||
|  | { | ||||||
|  |     if (!LittleFS.begin()) | ||||||
|  |     { | ||||||
|  |         Serial.println("An Error has occurred while mounting LittleFS"); | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | bool Config::loadConfig() | ||||||
|  | { | ||||||
|  |     StaticJsonDocument<1024> doc; | ||||||
|  |     File config_file = LittleFS.open("/config.json","r"); | ||||||
|  |     deserializeJson(doc, config_file);  | ||||||
|  |     this->SSID=doc["SSID"].as<const char*>(); | ||||||
|  |     this->PASS=doc["PASS"].as<const char*>(); | ||||||
|  |     return true; | ||||||
|  | } | ||||||
							
								
								
									
										12
									
								
								src/Config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/Config.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | #pragma once | ||||||
|  | #include "LittleFS.h" | ||||||
|  | #include "ArduinoJson.h" | ||||||
|  | class Config | ||||||
|  | { | ||||||
|  | public: | ||||||
|  |     Config(); | ||||||
|  |     const char *SSID; | ||||||
|  |     const char *PASS; | ||||||
|  |     int THEME; | ||||||
|  |     bool loadConfig(); | ||||||
|  | }; | ||||||
| @ -1,54 +0,0 @@ | |||||||
| #include "Persistence.h" |  | ||||||
| 
 |  | ||||||
| Persistence::Persistence() |  | ||||||
| { |  | ||||||
|     if (!LittleFS.begin()) |  | ||||||
|     { |  | ||||||
|         Serial.println("An Error has occurred while mounting LittleFS"); |  | ||||||
|         return; |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| String Persistence::TestRead() |  | ||||||
| { |  | ||||||
|     File file = LittleFS.open("/users.json", "r"); |  | ||||||
|     String result = ""; |  | ||||||
|     if (!file) |  | ||||||
|     { |  | ||||||
|         Serial.println("Failed to open file for reading"); |  | ||||||
|         return result; |  | ||||||
|     } |  | ||||||
|     Serial.println("File Content:"); |  | ||||||
|     while (file.available()) |  | ||||||
|     { |  | ||||||
|         result += (char)file.read(); |  | ||||||
|     } |  | ||||||
|     file.close(); |  | ||||||
|     return result; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| Persistence::Configuration Persistence::loadConfig() |  | ||||||
| { |  | ||||||
|     StaticJsonDocument<1024> doc; |  | ||||||
|     File config_file = LittleFS.open("/config.json","r"); |  | ||||||
|     deserializeJson(doc, config_file);  |  | ||||||
|     Configuration res; |  | ||||||
|     res.SSID=doc["SSID"].as<const char*>(); |  | ||||||
|     res.PASS=doc["PASS"].as<const char*>(); |  | ||||||
|     return res; |  | ||||||
| } |  | ||||||
| DynamicJsonDocument Persistence::readUsers(){ |  | ||||||
|     File user_file = LittleFS.open("/users.json","r"); |  | ||||||
|     size_t buffersize = user_file.size()+512; |  | ||||||
|     Serial.printf("Reserved %i for reading UserDB File", buffersize); |  | ||||||
|     DynamicJsonDocument doc(user_file.size()+512); |  | ||||||
|     deserializeJson(doc, user_file); |  | ||||||
|     user_file.close(); |  | ||||||
|     return doc; |  | ||||||
| } |  | ||||||
| bool Persistence::saveUsers(DynamicJsonDocument &doc){ |  | ||||||
|     File user_file = LittleFS.open("/users.json","w"); |  | ||||||
|     serializeJson(doc, user_file); |  | ||||||
|     user_file.close(); |  | ||||||
| 
 |  | ||||||
|     return true; |  | ||||||
| } |  | ||||||
| @ -1,17 +0,0 @@ | |||||||
| #pragma once |  | ||||||
| #include "LittleFS.h" |  | ||||||
| #include "ArduinoJson.h" |  | ||||||
| class Persistence |  | ||||||
| { |  | ||||||
|     public: |  | ||||||
|         Persistence(); |  | ||||||
|         String TestRead(); |  | ||||||
|         typedef struct Configuration{ |  | ||||||
|             const char* SSID; |  | ||||||
|             const char* PASS; |  | ||||||
|             int THEME; |  | ||||||
|         } config; |  | ||||||
|         Configuration loadConfig(); |  | ||||||
|         DynamicJsonDocument readUsers(); |  | ||||||
|         bool saveUsers(DynamicJsonDocument &doc); |  | ||||||
| }; |  | ||||||
| @ -1,5 +1,5 @@ | |||||||
| #pragma once | #pragma once | ||||||
| #include "Persistence.h" | #include "Config.h" | ||||||
| #include "LittleFS.h" | #include "LittleFS.h" | ||||||
| #include <sstream> | #include <sstream> | ||||||
| #include <iterator> | #include <iterator> | ||||||
|  | |||||||
							
								
								
									
										118
									
								
								src/Users.cpp
									
									
									
									
									
								
							
							
						
						
									
										118
									
								
								src/Users.cpp
									
									
									
									
									
								
							| @ -1,118 +0,0 @@ | |||||||
| #include "Users.h" |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| Users::Users(Persistence &p): persistence(p){ |  | ||||||
| } |  | ||||||
| Users::~Users() |  | ||||||
| { |  | ||||||
| } |  | ||||||
| bool Users::ImportFromPersistence(){ |  | ||||||
|     Serial.println("Importing Users from Persistence"); |  | ||||||
|     DynamicJsonDocument user_persistence = persistence.readUsers(); |  | ||||||
|     JsonArray array = user_persistence.as<JsonArray>(); |  | ||||||
|     for(JsonObject userdata : array){ |  | ||||||
|         User *imported = new User(); |  | ||||||
|         imported->uid= userdata["ID"].as<unsigned long>(); |  | ||||||
|         if(_userdb.count(*imported)) |  | ||||||
|             continue; |  | ||||||
|         imported->first_name = userdata["FIRST_NAME"].as<String>(); |  | ||||||
|         imported->last_name = userdata["LAST_NAME"].as<String>(); |  | ||||||
|         imported->rfid_uid = userdata["RFID_UID"].as<String>(); |  | ||||||
|         imported->user_pin = userdata["USER_PIN"].as<String>(); |  | ||||||
|         imported->enabled = userdata["ENABLED"].as<bool>(); |  | ||||||
|         this->_userdb.insert(*imported); |  | ||||||
|     } |  | ||||||
|     Serial.println("User import is done!"); |  | ||||||
|     return true; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| bool Users::ExportToPersistence(){ |  | ||||||
|     Serial.println("Exporting Users to Persistence"); |  | ||||||
|     size_t user_amount = _userdb.size()+2; |  | ||||||
|     Serial.print( " User Amount: " ); |  | ||||||
|     Serial.print(user_amount); |  | ||||||
|     size_t capacity = JSON_ARRAY_SIZE(user_amount) + user_amount*JSON_OBJECT_SIZE(6); |  | ||||||
|     Serial.print(" JSON Capacity"); |  | ||||||
|     Serial.print(capacity); |  | ||||||
|      Serial.print(" Free Heap: "); |  | ||||||
|      Serial.print(ESP.getFreeHeap()); |  | ||||||
|     //DynamicJsonDocument<CAPACITY> doc;
 |  | ||||||
|     DynamicJsonDocument doc(capacity); |  | ||||||
| 
 |  | ||||||
|     for(Users::User u : _userdb){ |  | ||||||
|         JsonObject exported_user = doc.createNestedObject(); |  | ||||||
|         exported_user["ID"] = u.uid; |  | ||||||
|         exported_user["FIRST_NAME"] = u.first_name; |  | ||||||
|         exported_user["LAST_NAME"] = u.last_name; |  | ||||||
|         exported_user["RFID_UID"] = u.rfid_uid; |  | ||||||
|         exported_user["USER_PIN"] = u.user_pin; |  | ||||||
|         exported_user["ENABLED"] = u.enabled; |  | ||||||
|     } |  | ||||||
|     persistence.saveUsers(doc); |  | ||||||
|     Serial.println("User export is done!"); |  | ||||||
|     return true; |  | ||||||
| } |  | ||||||
| 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) |  | ||||||
|                  { return pin_code == user.user_pin&&user.enabled==true; }); |  | ||||||
|     return (logon_users->size() > 0); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 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) |  | ||||||
|                  { return rfid_code == user.rfid_uid&&user.enabled==true; }); |  | ||||||
|     return (logon_users->size() > 0); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| unsigned long Users::addUser(String first_name, String last_name, String rifd_uid, String user_pin) |  | ||||||
| { |  | ||||||
|     Serial.println("Adding User:" + first_name); |  | ||||||
|     unsigned long new_id = this->_userdb.rbegin()->uid + 1; |  | ||||||
|     this->_userdb.insert(user_account{.uid = new_id, .first_name = first_name, .last_name = last_name, .rfid_uid = rifd_uid, .user_pin = user_pin}); |  | ||||||
|     return new_id; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| bool Users::delUser(unsigned long id) |  | ||||||
| { |  | ||||||
|     return this->_userdb.erase(user_account{.uid = id})>0; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| bool Users::updateUser(unsigned long id, ATTRIBUTES attr, String value) |  | ||||||
| { |  | ||||||
|     auto  modify = this->_userdb.find(user_account{.uid = id}); |  | ||||||
|     switch (attr) |  | ||||||
|     { |  | ||||||
|     case FIRST_NAME: |  | ||||||
|         modify->first_name = value; |  | ||||||
|         break; |  | ||||||
|     case LAST_NAME: |  | ||||||
|         modify->last_name = value; |  | ||||||
|         break; |  | ||||||
|     case RFID_UID: |  | ||||||
|         modify->rfid_uid = value; |  | ||||||
|         break; |  | ||||||
|     case USER_PIN: |  | ||||||
|         modify->user_pin = value; |  | ||||||
|         break; |  | ||||||
| 
 |  | ||||||
|     default: |  | ||||||
|         break; |  | ||||||
|     } |  | ||||||
|     return false; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| size_t Users::countUsers(){ |  | ||||||
|     return _userdb.size(); |  | ||||||
| } |  | ||||||
| String Users::toString(User *user) |  | ||||||
| { |  | ||||||
|     return "UID: " + String(user->uid) + " Name: " + user->first_name + " " + user->last_name; |  | ||||||
| } |  | ||||||
| void Users::PrintAllToSerial(){ |  | ||||||
|     Serial.println("#All Users:"); |  | ||||||
|     for(Users::User u : _userdb){ |  | ||||||
|         Serial.println(toString(&u)); |  | ||||||
|     } |  | ||||||
| } |  | ||||||
							
								
								
									
										46
									
								
								src/Users.h
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								src/Users.h
									
									
									
									
									
								
							| @ -1,46 +0,0 @@ | |||||||
| #pragma once |  | ||||||
| #include <Arduino.h> |  | ||||||
| #include <set> |  | ||||||
| #include <vector> |  | ||||||
| #include "Persistence.h" |  | ||||||
| class Users |  | ||||||
| { |  | ||||||
| public: |  | ||||||
|     enum ATTRIBUTES{ |  | ||||||
|         FIRST_NAME, |  | ||||||
|         LAST_NAME, |  | ||||||
|         RFID_UID, |  | ||||||
|         USER_PIN |  | ||||||
|     }; |  | ||||||
|     typedef struct User |  | ||||||
|     { |  | ||||||
|         //User(unsigned long new_uid): uid(new_uid){}
 |  | ||||||
|         unsigned long uid; |  | ||||||
|         mutable String first_name; |  | ||||||
|         mutable String last_name; |  | ||||||
|         mutable String rfid_uid; |  | ||||||
|         mutable String user_pin; |  | ||||||
|         mutable bool enabled = true; |  | ||||||
|         bool operator < (const User &o) const { return uid <o.uid; } |  | ||||||
|         bool operator == (const User &o) const { return uid ==o.uid; } |  | ||||||
|          |  | ||||||
|     } user_account; |  | ||||||
| 
 |  | ||||||
| private: |  | ||||||
|     std::set<User> _userdb; |  | ||||||
|     Persistence &persistence; |  | ||||||
|     /* data */ |  | ||||||
| public: |  | ||||||
|     Users(Persistence &persistence); |  | ||||||
|     ~Users(); |  | ||||||
|     bool checkRfid(String rfid_code, std::vector<Users::User> *logon_users); |  | ||||||
|     bool checkPin(String pin_code, std::vector<Users::User> *logon_users); |  | ||||||
|     unsigned long addUser(String first_name, String last_name, String rifd_uid, String user_pin); |  | ||||||
|     bool delUser(unsigned long id); |  | ||||||
|     bool updateUser(unsigned long id, ATTRIBUTES attr, String value); |  | ||||||
|     String toString(User *user); |  | ||||||
|     bool ImportFromPersistence(); |  | ||||||
|     bool ExportToPersistence(); |  | ||||||
|     void PrintAllToSerial(); |  | ||||||
|     size_t countUsers(); |  | ||||||
| }; |  | ||||||
| @ -23,8 +23,8 @@ bool WebConsole::init(userdb::UserDb *userdb) | |||||||
|     _server->on(UriBraces("/api/user/{}"), HTTPMethod::HTTP_POST, std::bind(&WebConsole::_updateUser, this)); |     _server->on(UriBraces("/api/user/{}"), HTTPMethod::HTTP_POST, std::bind(&WebConsole::_updateUser, this)); | ||||||
|     _server->on(UriBraces("/api/config/{}"), std::bind(&WebConsole::_deleteUser, this)); |     _server->on(UriBraces("/api/config/{}"), std::bind(&WebConsole::_deleteUser, this)); | ||||||
|     //_server->on("/bypin",std::bind(&WebConsole::_findPin,this));
 |     //_server->on("/bypin",std::bind(&WebConsole::_findPin,this));
 | ||||||
|     _server->serveStatic("/", LittleFS, "/static/index.html"); |     _server->serveStatic("/", LittleFS, "/s/"); | ||||||
|     //_server->onNotFound(std::bind(&WebConsole::_handleStatic, this));
 |     _server->onNotFound(std::bind(&WebConsole::_handleUnknown, this)); | ||||||
|     return true; |     return true; | ||||||
| } | } | ||||||
| void WebConsole::attachRfid(Rfid *rfid) | void WebConsole::attachRfid(Rfid *rfid) | ||||||
| @ -45,34 +45,19 @@ bool WebConsole::isInterceptingRfid() | |||||||
| { | { | ||||||
|     return catch_rfid; |     return catch_rfid; | ||||||
| } | } | ||||||
| void WebConsole::_handleStatic() | void WebConsole::_handleUnknown() | ||||||
| { | { | ||||||
|     String path = path_prefix + _server->uri(); |     if (_server->method() == HTTP_OPTIONS) | ||||||
|     Serial.print("Request " + path); |  | ||||||
|     File src = LittleFS.open(path, "r"); |  | ||||||
|     if (src.isDirectory()) |  | ||||||
|     { |     { | ||||||
|         path += "index.html"; |         _server->sendHeader("Access-Control-Allow-Origin", "*"); | ||||||
|         src.close(); |         _server->sendHeader("Access-Control-Max-Age", "10000"); | ||||||
|         src = LittleFS.open(path, "r"); |         _server->sendHeader("Access-Control-Allow-Methods", "PUT,POST,GET,OPTIONS"); | ||||||
|     } |         _server->sendHeader("Access-Control-Allow-Headers", "*"); | ||||||
|     if (!src) |         _server->send(204); | ||||||
|     { |     }else {   | ||||||
|         path = "/static/error404.html"; |     File src = LittleFS.open("s/index.html", "r"); | ||||||
|         src.close(); |     _server->streamFile(src, "text/html"); | ||||||
|         src = LittleFS.open(path, "r"); |     src.close(); | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     Serial.println(" resolved to " + path); |  | ||||||
|     if (src) |  | ||||||
|     { |  | ||||||
|         String content_type = "text/html"; |  | ||||||
|         _server->streamFile(src, content_type); |  | ||||||
|         src.close(); |  | ||||||
|     } |  | ||||||
|     else |  | ||||||
|     { |  | ||||||
|         _server->send(500, "text/plain", "Internal error 500"); |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -238,3 +223,6 @@ void WebConsole::_catchRFID() | |||||||
|         _server->send(500, "text/json", "{\"ok\":\"now activated\"}"); |         _server->send(500, "text/json", "{\"ok\":\"now activated\"}"); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | void WebConsole::_updateAdmin() | ||||||
|  | { | ||||||
|  | } | ||||||
| @ -9,7 +9,7 @@ | |||||||
| #include "Rfid.h" | #include "Rfid.h" | ||||||
| namespace webconsole | namespace webconsole | ||||||
| { | { | ||||||
|     static const char path_prefix[] PROGMEM = "/static"; |     static const char path_prefix[] PROGMEM = "/s"; | ||||||
|     static ESP8266WebServer _server(80); |     static ESP8266WebServer _server(80); | ||||||
|     class WebConsole |     class WebConsole | ||||||
|     { |     { | ||||||
| @ -23,7 +23,7 @@ namespace webconsole | |||||||
|         bool isInterceptingRfid(); |         bool isInterceptingRfid(); | ||||||
| 
 | 
 | ||||||
|     private: |     private: | ||||||
|         void _handleStatic(); |         void _handleUnknown(); | ||||||
|         void _getUserDb(); |         void _getUserDb(); | ||||||
|         void _deleteUser(); |         void _deleteUser(); | ||||||
|         void _getUser(); |         void _getUser(); | ||||||
| @ -31,6 +31,7 @@ namespace webconsole | |||||||
|         void _createUser(); |         void _createUser(); | ||||||
|         void _dropUserDb(); |         void _dropUserDb(); | ||||||
|         void _catchRFID(); |         void _catchRFID(); | ||||||
|  |         void _updateAdmin(); | ||||||
|         void _print_db_raw() |         void _print_db_raw() | ||||||
|         { |         { | ||||||
|             File f = LittleFS.open("userdb.csv", "r"); |             File f = LittleFS.open("userdb.csv", "r"); | ||||||
|  | |||||||
							
								
								
									
										10
									
								
								src/main.cpp
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								src/main.cpp
									
									
									
									
									
								
							| @ -7,9 +7,9 @@ | |||||||
| #include <ESP8266WiFi.h> | #include <ESP8266WiFi.h> | ||||||
| #include "WebConsole.h" | #include "WebConsole.h" | ||||||
| #include "UserDb.h" | #include "UserDb.h" | ||||||
| #include "Persistence.h" | #include "Config.h" | ||||||
| // File persistence
 | // File config
 | ||||||
| Persistence persistence; | Config config; | ||||||
| userdb::UserDb userdatabase("userdb.csv"); | userdb::UserDb userdatabase("userdb.csv"); | ||||||
| webconsole::WebConsole web; | webconsole::WebConsole web; | ||||||
| // Rfid
 | // Rfid
 | ||||||
| @ -26,12 +26,10 @@ IPAddress local_IP(192, 168, 4, 22); | |||||||
| IPAddress gateway(192, 168, 4, 9); | IPAddress gateway(192, 168, 4, 9); | ||||||
| IPAddress subnet(255, 255, 255, 0); | IPAddress subnet(255, 255, 255, 0); | ||||||
| 
 | 
 | ||||||
| // User DB
 |  | ||||||
| // Users users(persistence);
 |  | ||||||
| 
 | 
 | ||||||
| void setup() | void setup() | ||||||
| { | { | ||||||
| 	Persistence::Configuration config = persistence.loadConfig(); | 	config.loadConfig(); | ||||||
| 	Serial.begin(115200); | 	Serial.begin(115200); | ||||||
| 	Serial.println("Starting System"); | 	Serial.println("Starting System"); | ||||||
| 	Serial.print("\t1. Network config ->"); | 	Serial.print("\t1. Network config ->"); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user