service/pam: add responseVisible
Fixes misunderstanding of "echo".
This commit is contained in:
parent
6efa05a8eb
commit
59cf60d83e
|
@ -123,12 +123,7 @@ void PamConversation::onMessage() {
|
|||
|
||||
if (!ok) goto fail;
|
||||
|
||||
this->message(
|
||||
QString::fromUtf8(message),
|
||||
/*flags.echo*/ true,
|
||||
flags.error,
|
||||
flags.responseRequired
|
||||
);
|
||||
this->message(QString::fromUtf8(message), flags.error, flags.responseRequired, flags.echo);
|
||||
} else {
|
||||
qCCritical(logPam) << "Unexpected message from subprocess.";
|
||||
goto fail;
|
||||
|
|
|
@ -193,6 +193,7 @@ void PamContext::setUser(QString user) {
|
|||
QString PamContext::message() const { return this->mMessage; }
|
||||
bool PamContext::messageIsError() const { return this->mMessageIsError; }
|
||||
bool PamContext::isResponseRequired() const { return this->mIsResponseRequired; }
|
||||
bool PamContext::isResponseVisible() const { return this->mIsResponseVisible; }
|
||||
|
||||
void PamContext::onCompleted(PamResult::Enum result) {
|
||||
this->abortConversation();
|
||||
|
@ -207,20 +208,23 @@ void PamContext::onError(PamError::Enum error) {
|
|||
|
||||
void PamContext::onMessage(
|
||||
QString message,
|
||||
bool messageChanged,
|
||||
bool isError,
|
||||
bool responseRequired
|
||||
bool responseRequired,
|
||||
bool responseVisible
|
||||
) {
|
||||
if (messageChanged) {
|
||||
if (message != this->mMessage) {
|
||||
this->mMessage = std::move(message);
|
||||
emit this->messageChanged();
|
||||
}
|
||||
if (message != this->mMessage) {
|
||||
this->mMessage = std::move(message);
|
||||
emit this->messageChanged();
|
||||
}
|
||||
|
||||
if (isError != this->mMessageIsError) {
|
||||
this->mMessageIsError = isError;
|
||||
emit this->messageIsErrorChanged();
|
||||
}
|
||||
if (isError != this->mMessageIsError) {
|
||||
this->mMessageIsError = isError;
|
||||
emit this->messageIsErrorChanged();
|
||||
}
|
||||
|
||||
if (responseVisible != this->mIsResponseVisible) {
|
||||
this->mIsResponseVisible = responseVisible;
|
||||
emit this->responseVisibleChanged();
|
||||
}
|
||||
|
||||
if (responseRequired != this->mIsResponseRequired) {
|
||||
|
|
|
@ -46,6 +46,8 @@ class PamContext
|
|||
///
|
||||
/// Responses can be returned with the `respond()` function.
|
||||
Q_PROPERTY(bool responseRequired READ isResponseRequired NOTIFY responseRequiredChanged);
|
||||
/// If the user's response should be visible. Only valid when `responseRequired` is true.
|
||||
Q_PROPERTY(bool responseVisible READ isResponseVisible NOTIFY responseVisibleChanged);
|
||||
// clang-format on
|
||||
QML_ELEMENT;
|
||||
|
||||
|
@ -84,6 +86,7 @@ public:
|
|||
[[nodiscard]] QString message() const;
|
||||
[[nodiscard]] bool messageIsError() const;
|
||||
[[nodiscard]] bool isResponseRequired() const;
|
||||
[[nodiscard]] bool isResponseVisible() const;
|
||||
|
||||
signals:
|
||||
/// Emitted whenever authentication completes.
|
||||
|
@ -104,11 +107,12 @@ signals:
|
|||
void messageChanged();
|
||||
void messageIsErrorChanged();
|
||||
void responseRequiredChanged();
|
||||
void responseVisibleChanged();
|
||||
|
||||
private slots:
|
||||
void onCompleted(PamResult::Enum result);
|
||||
void onError(PamError::Enum error);
|
||||
void onMessage(QString message, bool messageChanged, bool isError, bool responseRequired);
|
||||
void onMessage(QString message, bool isError, bool responseRequired, bool responseVisible);
|
||||
|
||||
private:
|
||||
PamConversation* conversation = nullptr;
|
||||
|
@ -121,4 +125,5 @@ private:
|
|||
QString mMessage;
|
||||
bool mMessageIsError = false;
|
||||
bool mIsResponseRequired = false;
|
||||
bool mIsResponseVisible = false;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue