on xenial help sign in
Fix review nits
c87078dMichael Terry
tests/mocks/LightDM/demo/GreeterPrivate.cpp+17−10
@@ -48,6 +48,7 @@ public:
48 this, SLOT(finishPam()));
48 this, SLOT(finishPam()));
49 connect(this, SIGNAL(showMessage(QString, QLightDM::Greeter::MessageType)),
49 connect(this, SIGNAL(showMessage(QString, QLightDM::Greeter::MessageType)),
50 greeter, SIGNAL(showMessage(QString, QLightDM::Greeter::MessageType)));
50 greeter, SIGNAL(showMessage(QString, QLightDM::Greeter::MessageType)));
51+ // This next connect is how we pass ResponseFutures between threads
51 connect(this, SIGNAL(showPrompt(QString, QLightDM::Greeter::PromptType, QLightDM::GreeterImpl::ResponseFuture)),
52 connect(this, SIGNAL(showPrompt(QString, QLightDM::Greeter::PromptType, QLightDM::GreeterImpl::ResponseFuture)),
52 this, SLOT(handlePrompt(QString, QLightDM::Greeter::PromptType, QLightDM::GreeterImpl::ResponseFuture)));
53 this, SLOT(handlePrompt(QString, QLightDM::Greeter::PromptType, QLightDM::GreeterImpl::ResponseFuture)));
53 }
54 }
@@ -68,11 +69,11 @@ public:
68 conversation.conv = converseWithPam;
69 conversation.conv = converseWithPam;
69 conversation.appdata_ptr = static_cast<void*>(this);
70 conversation.appdata_ptr = static_cast<void*>(this);
70
71
71− if (pam_start("lightdm", username.toUtf8(),
72+ if (pam_start("lightdm", username.toUtf8(), &conversation, &pamHandle) == PAM_SUCCESS) {
72− &conversation, &pamHandle) == PAM_SUCCESS) {
73 futureWatcher.setFuture(QtConcurrent::run(authenticateWithPam, pamHandle));
73 futureWatcher.setFuture(QtConcurrent::run(authenticateWithPam, pamHandle));
74 } else {
74 } else {
75 greeterPrivate->authenticated = false;
75 greeterPrivate->authenticated = false;
76+ Q_EMIT greeter->showMessage("Internal error: could not start PAM authentication", QLightDM::Greeter::MessageTypeError);
76 Q_EMIT greeter->authenticationComplete();
77 Q_EMIT greeter->authenticationComplete();
77 }
78 }
78 }
79 }
@@ -80,12 +81,15 @@ public:
80 static int authenticateWithPam(pam_handle* pamHandle)
81 static int authenticateWithPam(pam_handle* pamHandle)
81 {
82 {
82 int pamStatus = pam_authenticate(pamHandle, 0);
83 int pamStatus = pam_authenticate(pamHandle, 0);
83− if (pamStatus == PAM_SUCCESS)
84+ if (pamStatus == PAM_SUCCESS) {
84− pamStatus = pam_acct_mgmt(pamHandle, 0);
85+ pamStatus = pam_acct_mgmt(pamHandle, 0);
86+ }
85− if (pamStatus == PAM_NEW_AUTHTOK_REQD)
87+ if (pamStatus == PAM_NEW_AUTHTOK_REQD) {
86− pamStatus = pam_chauthtok(pamHandle, PAM_CHANGE_EXPIRED_AUTHTOK);
88+ pamStatus = pam_chauthtok(pamHandle, PAM_CHANGE_EXPIRED_AUTHTOK);
89+ }
87− if (pamStatus == PAM_SUCCESS)
90+ if (pamStatus == PAM_SUCCESS) {
88− pam_setcred(pamHandle, PAM_REINITIALIZE_CRED);
91+ pam_setcred(pamHandle, PAM_REINITIALIZE_CRED);
92+ }
89 return pamStatus;
93 return pamStatus;
90 }
94 }
91
95
@@ -101,11 +105,10 @@ public:
101
105
102 GreeterImpl* impl = static_cast<GreeterImpl*>(appdata_ptr);
106 GreeterImpl* impl = static_cast<GreeterImpl*>(appdata_ptr);
103
107
104− bool raise_error = false;
105 int count;
108 int count;
106 QVector<ResponseFuture> responses;
109 QVector<ResponseFuture> responses;
107
110
108− for (count = 0; count < num_msg && !raise_error; ++count)
111+ for (count = 0; count < num_msg; ++count)
109 {
112 {
110 switch (msg[count]->msg_style)
113 switch (msg[count]->msg_style)
111 {
114 {
@@ -123,21 +126,25 @@ public:
123 responses.append(ResponseFuture());
126 responses.append(ResponseFuture());
124 responses.last().reportStarted();
127 responses.last().reportStarted();
125 Q_EMIT impl->showPrompt(message, Greeter::PromptTypeSecret, responses.last());
128 Q_EMIT impl->showPrompt(message, Greeter::PromptTypeSecret, responses.last());
129+ break;
126 }
130 }
127 case PAM_TEXT_INFO:
131 case PAM_TEXT_INFO:
128 {
132 {
129 QString message(msg[count]->msg);
133 QString message(msg[count]->msg);
130 Q_EMIT impl->showMessage(message, Greeter::MessageTypeInfo);
134 Q_EMIT impl->showMessage(message, Greeter::MessageTypeInfo);
135+ break;
131 }
136 }
132 default:
137 default:
133 {
138 {
134 QString message(msg[count]->msg);
139 QString message(msg[count]->msg);
135 Q_EMIT impl->showMessage(message, Greeter::MessageTypeError);
140 Q_EMIT impl->showMessage(message, Greeter::MessageTypeError);
141+ break;
136 }
142 }
137 }
143 }
138 }
144 }
139
145
140 int i = 0;
146 int i = 0;
147+ bool raise_error = false;
141
148
142 for (auto &response : responses)
149 for (auto &response : responses)
143 {
150 {
tests/mocks/LightDM/demo/UsersModelPrivate.cpp+1−1
@@ -29,7 +29,7 @@ UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
29 : q_ptr(parent)
29 : q_ptr(parent)
30{
30{
31 QSettings settings(QDir::homePath() + "/.unity8-greeter-demo", QSettings::NativeFormat);
31 QSettings settings(QDir::homePath() + "/.unity8-greeter-demo", QSettings::NativeFormat);
32− QStringList users = settings.value("users", QStringList() << "phablet").toStringList();
32+ QStringList users = settings.value("users", QStringList() << qgetenv("USER")).toStringList();
33
33
34 Q_FOREACH(const QString &user, users)
34 Q_FOREACH(const QString &user, users)
35 {
35 {