fix: [env] set user`s environment to QApt#334
Conversation
Reviewer's GuideEnsure QApt transactions inherit the real user's environment by injecting the SUDO_USER variable before running install and uninstall operations. Sequence Diagram for SUDO_USER Injection in Package InstallationsequenceDiagram
participant DLM as DebListModel
participant ENV as QProcessEnvironment
participant CTX as "m_currentTransaction (Transaction)"
DLM->>+DLM: installDebs()
%% m_currentTransaction is assumed to be set and point to a Transaction object
DLM->>+ENV: QProcessEnvironment.systemEnvironment()
ENV-->>-DLM: env
DLM->>+ENV: env.value("USER")
ENV-->>-DLM: currentUser
DLM->>+ENV: env.value("SUDO_USER")
ENV-->>-DLM: sudoUser
DLM->>DLM: realUser = determineRealUser(currentUser, sudoUser)
DLM->>DLM: map = createMapWithSudoUser(realUser)
DLM->>+CTX: setEnvVariable(map)
CTX-->>-DLM:
DLM->>+CTX: run()
CTX-->>-DLM:
DLM-->>-DLM: %% installDebs ends
Sequence Diagram for SUDO_USER Injection in Package UninstallationsequenceDiagram
participant DLM as DebListModel
participant ENV as QProcessEnvironment
participant TRX as "transsaction (Transaction)"
DLM->>+DLM: slotUninstallPackage(index)
%% transsaction = new Transaction()
%% m_currentTransaction = transsaction
DLM->>+ENV: QProcessEnvironment.systemEnvironment()
ENV-->>-DLM: env
DLM->>+ENV: env.value("USER")
ENV-->>-DLM: currentUser
DLM->>+ENV: env.value("SUDO_USER")
ENV-->>-DLM: sudoUser
DLM->>DLM: realUser = determineRealUser(currentUser, sudoUser)
DLM->>DLM: map = createMapWithSudoUser(realUser)
DLM->>+TRX: setEnvVariable(map)
TRX-->>-DLM:
DLM->>+TRX: run()
TRX-->>-DLM:
DLM-->>-DLM: %% slotUninstallPackage ends
Class Diagram: DebListModel Update for Environment Variable HandlingclassDiagram
class DebListModel {
+slotUninstallPackage(const int index): void
+installDebs(): void
m_currentTransaction: Transaction
}
class Transaction {
+setEnvVariable(QVariantMap map): void
+run(): void
}
DebListModel ..> Transaction : uses
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: LiHua000, max-lvs The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
1 similar comment
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: LiHua000, max-lvs The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
/merge |
|
This pr cannot be merged! (status: unstable) |
|
/merge |
|
This pr cannot be merged! (status: unstable) |
Log: as title
Bug: https://pms.uniontech.com/bug-view-318565.html
Summary by Sourcery
Set the real user’s environment variable for QApt install and uninstall transactions
Bug Fixes: