registrymanager.cpp 2.4 KB

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