Skip to content

Commit a2c2fe4

Browse files
authored
fix: [env] set user`s environment to QApt (#334)
Log: as title Bug: https://pms.uniontech.com/bug-view-318565.html
1 parent 8368e45 commit a2c2fe4

1 file changed

Lines changed: 23 additions & 1 deletion

File tree

src/deb-installer/model/deblistmodel.cpp

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -424,8 +424,18 @@ void DebListModel::slotUninstallPackage(const int index)
424424
// 卸载结束之后 删除指针
425425
connect(transsaction, &Transaction::finished, transsaction, &Transaction::deleteLater);
426426

427-
m_currentTransaction = transsaction; //保存trans指针
427+
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
428+
QVariantMap map;
428429

430+
m_currentTransaction = transsaction; //保存trans指针
431+
// 获取当前真实用户信息
432+
QString currentUser = env.value("USER");
433+
// 如果SUDO_USER存在,说明当前是通过sudo启动的
434+
QString realUser = env.value("SUDO_USER");
435+
if (realUser.isEmpty())
436+
realUser = currentUser;
437+
map.insert("SUDO_USER", realUser);
438+
transsaction->setEnvVariable(map);
429439
transsaction->run(); //开始卸载
430440
}
431441

@@ -896,6 +906,18 @@ void DebListModel::installDebs()
896906

897907
m_currentTransaction = transaction;
898908

909+
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
910+
QVariantMap map;
911+
912+
// 获取当前真实用户信息
913+
QString currentUser = env.value("USER");
914+
// 如果SUDO_USER存在,说明当前是通过sudo启动的
915+
QString realUser = env.value("SUDO_USER");
916+
if (realUser.isEmpty())
917+
realUser = currentUser;
918+
map.insert("SUDO_USER", realUser);
919+
m_currentTransaction->setEnvVariable(map);
920+
899921
m_currentTransaction->run();
900922
}
901923

0 commit comments

Comments
 (0)