Fork of the excellent esp8266-react - https://github.com/rjwats/esp8266-react
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
1.0 KiB

  1. #include <SecuritySettingsService.h>
  2. SecuritySettingsService::SecuritySettingsService(AsyncWebServer* server, FS* fs) : AdminSettingsService(server, fs, this, SECURITY_SETTINGS_PATH, SECURITY_SETTINGS_FILE), SecurityManager() {}
  3. SecuritySettingsService::~SecuritySettingsService() {}
  4. void SecuritySettingsService::readFromJsonObject(JsonObject& root) {
  5. // secret
  6. _jwtHandler.setSecret(root["jwt_secret"] | DEFAULT_JWT_SECRET);
  7. // users
  8. _users.clear();
  9. if (root["users"].is<JsonArray>()) {
  10. for (JsonVariant user : root["users"].as<JsonArray>()) {
  11. _users.push_back(User(user["username"], user["password"], user["admin"]));
  12. }
  13. }
  14. }
  15. void SecuritySettingsService::writeToJsonObject(JsonObject& root) {
  16. // secret
  17. root["jwt_secret"] = _jwtHandler.getSecret();
  18. // users
  19. JsonArray users = root.createNestedArray("users");
  20. for (User _user : _users) {
  21. JsonObject user = users.createNestedObject();
  22. user["username"] = _user.getUsername();
  23. user["password"] = _user.getPassword();
  24. user["admin"] = _user.isAdmin();
  25. }
  26. }