diff --git a/src/dde-file-manager-daemon/disk/diskmanager.cpp b/src/dde-file-manager-daemon/disk/diskmanager.cpp index db0a4e73ef..f8cd997366 100644 --- a/src/dde-file-manager-daemon/disk/diskmanager.cpp +++ b/src/dde-file-manager-daemon/disk/diskmanager.cpp @@ -49,8 +49,11 @@ void DiskManager::changeDiskPassword(const QString &oldPwd, const QString &newPw return; } - const QByteArray &tmpOldPwd = oldPwd.toLocal8Bit(); - const QByteArray &tmpNewPwd = newPwd.toLocal8Bit(); + QByteArray decodedByteArray = oldPwd.toUtf8(); + const QByteArray &tmpOldPwd = QByteArray::fromBase64(decodedByteArray); + + decodedByteArray = oldPwd.toUtf8(); + const QByteArray &tmpNewPwd = QByteArray::fromBase64(decodedByteArray); int ret = Unknown; QStringList successList; diff --git a/src/dde-file-manager-daemon/usershare/usersharemanager.cpp b/src/dde-file-manager-daemon/usershare/usersharemanager.cpp index f30c4ce3e6..ab182c654c 100644 --- a/src/dde-file-manager-daemon/usershare/usersharemanager.cpp +++ b/src/dde-file-manager-daemon/usershare/usersharemanager.cpp @@ -61,19 +61,27 @@ bool UserShareManager::addGroup(const QString &groupName) bool UserShareManager::setUserSharePassword(const QString &username, const QString &passward) { + QByteArray encodedByteArray = username.toUtf8(); + QByteArray decodedByteArray = QByteArray::fromBase64(encodedByteArray); + const QString &decodedUsername = QString::fromUtf8(decodedByteArray); + + encodedByteArray = passward.toUtf8(); + decodedByteArray = QByteArray::fromBase64(encodedByteArray); + const QString &decodedPassward = QString::fromUtf8(decodedByteArray); + if (!checkAuthentication()) { - qDebug() << "setUserSharePassword failed" << username; + qDebug() << "setUserSharePassword failed" << decodedUsername; return false; } - qDebug() << username;// << passward; // log password? + qDebug() << decodedUsername;// << passward; // log password? QStringList args; - args << "-a" << username << "-s"; + args << "-a" << decodedUsername << "-s"; QProcess p; p.start("smbpasswd", args); - p.write(passward.toStdString().c_str()); + p.write(decodedPassward.toStdString().c_str()); p.write("\n"); - p.write(passward.toStdString().c_str()); + p.write(decodedPassward.toStdString().c_str()); p.closeWriteChannel(); bool ret = p.waitForFinished(); qDebug() << p.readAll() << p.readAllStandardError() << p.readAllStandardOutput(); diff --git a/src/dde-file-manager-lib/diskpwdmanager/pwdconfirmwidget.cpp b/src/dde-file-manager-lib/diskpwdmanager/pwdconfirmwidget.cpp index c5e59777dd..19fe0a8e3e 100644 --- a/src/dde-file-manager-lib/diskpwdmanager/pwdconfirmwidget.cpp +++ b/src/dde-file-manager-lib/diskpwdmanager/pwdconfirmwidget.cpp @@ -209,7 +209,15 @@ void PwdConfirmWidget::onSaveBtnClicked() if (m_parentWidget) DWindowManagerHelper::instance()->setMotifFunctions(m_parentWidget->windowHandle(), DWindowManagerHelper::FUNC_CLOSE, false); - m_diskInterface->changeDiskPassword(m_oldPwdEdit->text(), m_newPwdEdit->text()); + QByteArray byteArray = m_oldPwdEdit->text().toUtf8(); + QByteArray encodedByteArray = byteArray.toBase64(); + const QString &encodedOldPwd = QString::fromUtf8(encodedByteArray); + + byteArray = m_newPwdEditv->text().toUtf8(); + encodedByteArray = byteArray.toBase64(); + const QString &encodedNewPwd = QString::fromUtf8(encodedByteArray); + + m_diskInterface->changeDiskPassword(encodedOldPwd, encodedNewPwd); } } diff --git a/src/usershare/usersharemanager.cpp b/src/usershare/usersharemanager.cpp index 65699997aa..909a26b593 100644 --- a/src/usershare/usersharemanager.cpp +++ b/src/usershare/usersharemanager.cpp @@ -374,7 +374,15 @@ void UserShareManager::updateUserShareInfo(bool sendSignal) void UserShareManager::setSambaPassword(const QString &userName, const QString &password) { - QDBusReply reply = m_userShareInterface->setUserSharePassword(userName, password); + QByteArray byteArray = userName.toUtf8(); + QByteArray encodedByteArray = byteArray.toBase64(); + const QString &encodedUserName = QString::fromUtf8(encodedByteArray); + + byteArray = password.toUtf8(); + encodedByteArray = byteArray.toBase64(); + const QString &encodedPassword = QString::fromUtf8(encodedByteArray); + + QDBusReply reply = m_userShareInterface->setUserSharePassword(encodedUserName, encodedPassword); if (reply.isValid()) { qDebug() << "set usershare password:" << reply.value(); } else {