registrymanager.cpp 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #include "registrymanager.h"
  2. #include <QDebug>
  3. #include <QSettings>
  4. RegistryManager::RegistryManager(QObject *parent) : QObject(parent) {}
  5. RegistryManager::~RegistryManager() {}
  6. bool RegistryManager::saveUserInfo(const QString &userId, const QString &username,
  7. const QString &password, const QString &identity) {
  8. QSettings settings(organizationName, applicationName);
  9. settings.beginGroup(userId);
  10. settings.setValue("Username", username);
  11. settings.setValue("Password", password);
  12. settings.setValue("Identity", identity);
  13. qDebug() << "saved user info" << username << password << identity;
  14. settings.endGroup();
  15. if (settings.status() == QSettings::NoError) {
  16. return true;
  17. } else {
  18. return false;
  19. }
  20. }
  21. bool RegistryManager::readUserInfo(const QString &userId, QString &username, QString &password) {
  22. QSettings settings(organizationName, applicationName);
  23. settings.beginGroup(userId);
  24. if (settings.contains("Username") && settings.contains("Password")) {
  25. username = settings.value("Username").toString();
  26. password = settings.value("Password").toString();
  27. settings.endGroup();
  28. return true;
  29. } else {
  30. settings.endGroup();
  31. return false;
  32. }
  33. }
  34. QStringList RegistryManager::getAllUserIds() {
  35. QSettings settings(organizationName, applicationName);
  36. return settings.childGroups();
  37. }
  38. QStringList RegistryManager::getAllUsernames() {
  39. QStringList usernames;
  40. QMap<QString, QPair<QString, QString>> allUserInfos = getAllUserInfos();
  41. for (const auto &userInfo : allUserInfos) {
  42. usernames.append(userInfo.first);
  43. }
  44. return usernames;
  45. }
  46. QString RegistryManager::getPasswordByUsername(const QString &username) {
  47. QMap<QString, QPair<QString, QString>> allUserInfos = getAllUserInfos();
  48. for (const auto &userInfo : allUserInfos) {
  49. if (userInfo.first == username) {
  50. return userInfo.second;
  51. }
  52. }
  53. return ""; // 如果未找到匹配的用户名,返回空字符串
  54. }
  55. QMap<QString, QPair<QString, QString>> RegistryManager::getAllUserInfos() {
  56. QMap<QString, QPair<QString, QString>> allUserInfos;
  57. QStringList userIds = getAllUserIds();
  58. for (const QString &userId : userIds) {
  59. QString username, password;
  60. if (readUserInfo(userId, username, password)) {
  61. allUserInfos.insert(userId, qMakePair(username, password));
  62. }
  63. }
  64. return allUserInfos;
  65. }