registrymanager.cpp 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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. settings.endGroup();
  28. if (settings.status() == QSettings::NoError) {
  29. return true;
  30. } else {
  31. return false;
  32. }
  33. }
  34. bool RegistryManager::readUserInfo(const QString &userId, QString &username, QString &password) {
  35. QSettings settings(organizationName, applicationName);
  36. settings.beginGroup(userId);
  37. if (settings.contains("Username") && settings.contains("Password")) {
  38. username = settings.value("Username").toString();
  39. password = settings.value("Password").toString();
  40. settings.endGroup();
  41. return true;
  42. } else {
  43. settings.endGroup();
  44. return false;
  45. }
  46. }
  47. QStringList RegistryManager::getAllUserIds() {
  48. QSettings settings(organizationName, applicationName);
  49. return settings.childGroups();
  50. }
  51. QStringList RegistryManager::getAllUsernames() {
  52. QStringList usernames;
  53. QMap<QString, QPair<QString, QString>> allUserInfos = getAllUserInfos();
  54. for (const auto &userInfo : allUserInfos) {
  55. usernames.append(userInfo.first);
  56. }
  57. return usernames;
  58. }
  59. QString RegistryManager::getPasswordByUsername(const QString &username) {
  60. QMap<QString, QPair<QString, QString>> allUserInfos = getAllUserInfos();
  61. for (const auto &userInfo : allUserInfos) {
  62. if (userInfo.first == username) {
  63. return userInfo.second;
  64. }
  65. }
  66. return ""; // 如果未找到匹配的用户名,返回空字符串
  67. }
  68. QMap<QString, QPair<QString, QString>> RegistryManager::getAllUserInfos() {
  69. QMap<QString, QPair<QString, QString>> allUserInfos;
  70. QStringList userIds = getAllUserIds();
  71. for (const QString &userId : userIds) {
  72. QString username, password;
  73. if (readUserInfo(userId, username, password)) {
  74. allUserInfos.insert(userId, qMakePair(username, password));
  75. }
  76. }
  77. return allUserInfos;
  78. }
  79. QMap<QString, QString> RegistryManager::getCurentLoginUser() {
  80. QMap<QString, QString> currentUserInfo;
  81. QSettings settings(organizationName, applicationName);
  82. settings.beginGroup(currentLoginUserId);
  83. settings.value("Username").toString();
  84. currentUserInfo["username"] = settings.value("Username").toString();
  85. currentUserInfo["certName"] = settings.value("CertName").toString();
  86. currentUserInfo["identity"] = settings.value("Identity").toString();
  87. settings.endGroup();
  88. return currentUserInfo;
  89. }
  90. void RegistryManager::setCurentLoginUserId(const QString &userId) { currentLoginUserId = userId; }