registrymanager.cpp 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. #include "registrymanager.h"
  2. #include <QDebug>
  3. #include <QSettings>
  4. RegistryManager *RegistryManager::s_instance = nullptr;
  5. RegistryManager *RegistryManager::instance() {
  6. if (!s_instance) {
  7. s_instance = new RegistryManager();
  8. }
  9. return s_instance;
  10. }
  11. void RegistryManager::cleanup() {
  12. if (s_instance) {
  13. delete s_instance;
  14. s_instance = nullptr;
  15. }
  16. }
  17. RegistryManager::RegistryManager(QObject *parent) : QObject(parent) {}
  18. RegistryManager::~RegistryManager() {}
  19. bool RegistryManager::saveUserInfo(const QString &userId, const QString &username, const QString &password,
  20. const QString &identity, const QString &certName) {
  21. QSettings settings(organizationName, applicationName);
  22. settings.beginGroup(userId);
  23. settings.setValue("Username", username);
  24. settings.setValue("Password", password);
  25. settings.setValue("Identity", identity);
  26. settings.setValue("CertName", certName);
  27. qDebug() << "saved user info" << username << password << identity;
  28. settings.endGroup();
  29. if (settings.status() == QSettings::NoError) {
  30. return true;
  31. } else {
  32. return false;
  33. }
  34. }
  35. bool RegistryManager::readUserInfo(const QString &userId, QString &username, QString &password) {
  36. QSettings settings(organizationName, applicationName);
  37. settings.beginGroup(userId);
  38. if (settings.contains("Username") && settings.contains("Password")) {
  39. username = settings.value("Username").toString();
  40. password = settings.value("Password").toString();
  41. settings.endGroup();
  42. return true;
  43. } else {
  44. settings.endGroup();
  45. return false;
  46. }
  47. }
  48. QStringList RegistryManager::getAllUserIds() {
  49. QSettings settings(organizationName, applicationName);
  50. return settings.childGroups();
  51. }
  52. QStringList RegistryManager::getAllUsernames() {
  53. QStringList usernames;
  54. QMap<QString, QPair<QString, QString>> allUserInfos = getAllUserInfos();
  55. for (const auto &userInfo : allUserInfos) {
  56. usernames.append(userInfo.first);
  57. }
  58. return usernames;
  59. }
  60. QString RegistryManager::getPasswordByUsername(const QString &username) {
  61. QMap<QString, QPair<QString, QString>> allUserInfos = getAllUserInfos();
  62. for (const auto &userInfo : allUserInfos) {
  63. if (userInfo.first == username) {
  64. return userInfo.second;
  65. }
  66. }
  67. return ""; // 如果未找到匹配的用户名,返回空字符串
  68. }
  69. QMap<QString, QPair<QString, QString>> RegistryManager::getAllUserInfos() {
  70. QMap<QString, QPair<QString, QString>> allUserInfos;
  71. QStringList userIds = getAllUserIds();
  72. for (const QString &userId : userIds) {
  73. QString username, password;
  74. if (readUserInfo(userId, username, password)) {
  75. allUserInfos.insert(userId, qMakePair(username, password));
  76. }
  77. }
  78. return allUserInfos;
  79. }
  80. QMap<QString, QString> RegistryManager::getCurentLoginUser() {
  81. QMap<QString, QString> currentUserInfo;
  82. QSettings settings(organizationName, applicationName);
  83. settings.beginGroup(currentLoginUserId);
  84. settings.value("Username").toString();
  85. currentUserInfo["username"] = settings.value("Username").toString();
  86. currentUserInfo["certName"] = settings.value("CertName").toString();
  87. currentUserInfo["identity"] = settings.value("Identity").toString();
  88. settings.endGroup();
  89. return currentUserInfo;
  90. }
  91. void RegistryManager::setCurentLoginUserId(const QString &userId) { currentLoginUserId = userId; }