Format
This commit is contained in:
parent
76626dc8da
commit
37dad3a255
4 changed files with 884 additions and 773 deletions
|
|
@ -3,90 +3,90 @@ import Quickshell
|
|||
import Quickshell.Services.Pam
|
||||
|
||||
Scope {
|
||||
id: root
|
||||
signal unlocked()
|
||||
signal failed()
|
||||
id: root
|
||||
signal unlocked
|
||||
signal failed
|
||||
|
||||
property string currentText: ""
|
||||
property bool unlockInProgress: false
|
||||
property bool showFailure: false
|
||||
property string errorMessage: ""
|
||||
property bool pamAvailable: typeof PamContext !== "undefined"
|
||||
property string currentText: ""
|
||||
property bool unlockInProgress: false
|
||||
property bool showFailure: false
|
||||
property string errorMessage: ""
|
||||
property bool pamAvailable: typeof PamContext !== "undefined"
|
||||
|
||||
onCurrentTextChanged: {
|
||||
if (currentText !== "") {
|
||||
showFailure = false;
|
||||
errorMessage = "";
|
||||
}
|
||||
onCurrentTextChanged: {
|
||||
if (currentText !== "") {
|
||||
showFailure = false
|
||||
errorMessage = ""
|
||||
}
|
||||
}
|
||||
|
||||
function tryUnlock() {
|
||||
if (!pamAvailable) {
|
||||
errorMessage = "PAM not available"
|
||||
showFailure = true
|
||||
return
|
||||
}
|
||||
|
||||
function tryUnlock() {
|
||||
if (!pamAvailable) {
|
||||
errorMessage = "PAM not available";
|
||||
showFailure = true;
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentText === "") {
|
||||
errorMessage = "Password required";
|
||||
showFailure = true;
|
||||
return;
|
||||
}
|
||||
|
||||
root.unlockInProgress = true;
|
||||
errorMessage = "";
|
||||
showFailure = false;
|
||||
|
||||
console.log("Starting PAM authentication for user:", pam.user);
|
||||
pam.start();
|
||||
if (currentText === "") {
|
||||
errorMessage = "Password required"
|
||||
showFailure = true
|
||||
return
|
||||
}
|
||||
|
||||
PamContext {
|
||||
id: pam
|
||||
config: "login"
|
||||
user: Quickshell.env("USER")
|
||||
root.unlockInProgress = true
|
||||
errorMessage = ""
|
||||
showFailure = false
|
||||
|
||||
onPamMessage: {
|
||||
console.log("PAM message:", message, "isError:", messageIsError, "responseRequired:", responseRequired);
|
||||
|
||||
if (messageIsError) {
|
||||
errorMessage = message;
|
||||
}
|
||||
|
||||
if (responseRequired) {
|
||||
console.log("Responding to PAM with password");
|
||||
respond(root.currentText);
|
||||
}
|
||||
}
|
||||
console.log("Starting PAM authentication for user:", pam.user)
|
||||
pam.start()
|
||||
}
|
||||
|
||||
onResponseRequiredChanged: {
|
||||
console.log("Response required changed:", responseRequired);
|
||||
if (responseRequired && root.unlockInProgress) {
|
||||
console.log("Automatically responding to PAM");
|
||||
respond(root.currentText);
|
||||
}
|
||||
}
|
||||
PamContext {
|
||||
id: pam
|
||||
config: "login"
|
||||
user: Quickshell.env("USER")
|
||||
|
||||
onCompleted: {
|
||||
console.log("PAM completed with result:", result);
|
||||
if (result === PamResult.Success) {
|
||||
console.log("Authentication successful");
|
||||
root.unlocked();
|
||||
} else {
|
||||
console.log("Authentication failed");
|
||||
errorMessage = "Authentication failed";
|
||||
showFailure = true;
|
||||
root.failed();
|
||||
}
|
||||
root.unlockInProgress = false;
|
||||
}
|
||||
onPamMessage: {
|
||||
console.log("PAM message:", message, "isError:", messageIsError, "responseRequired:", responseRequired)
|
||||
|
||||
onError: {
|
||||
console.log("PAM error:", error, "message:", message);
|
||||
errorMessage = message || "Authentication error";
|
||||
showFailure = true;
|
||||
root.unlockInProgress = false;
|
||||
root.failed();
|
||||
}
|
||||
if (messageIsError) {
|
||||
errorMessage = message
|
||||
}
|
||||
|
||||
if (responseRequired) {
|
||||
console.log("Responding to PAM with password")
|
||||
respond(root.currentText)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onResponseRequiredChanged: {
|
||||
console.log("Response required changed:", responseRequired)
|
||||
if (responseRequired && root.unlockInProgress) {
|
||||
console.log("Automatically responding to PAM")
|
||||
respond(root.currentText)
|
||||
}
|
||||
}
|
||||
|
||||
onCompleted: {
|
||||
console.log("PAM completed with result:", result)
|
||||
if (result === PamResult.Success) {
|
||||
console.log("Authentication successful")
|
||||
root.unlocked()
|
||||
} else {
|
||||
console.log("Authentication failed")
|
||||
errorMessage = "Authentication failed"
|
||||
showFailure = true
|
||||
root.failed()
|
||||
}
|
||||
root.unlockInProgress = false
|
||||
}
|
||||
|
||||
onError: {
|
||||
console.log("PAM error:", error, "message:", message)
|
||||
errorMessage = message || "Authentication error"
|
||||
showFailure = true
|
||||
root.unlockInProgress = false
|
||||
root.failed()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue