File same-pam-generic-classic.diff of Package kdebase4-workspace
--- kcheckpass/checkpass_pam.c
+++ kcheckpass/checkpass_pam.c
@@ -140,12 +140,14 @@
openlog("kcheckpass", LOG_PID, LOG_AUTH);
PAM_data.conv = conv;
- if (strcmp(method, "classic")) {
- sprintf(pservb, "%.31s-%.31s", caller, method);
- pam_service = pservb;
- } else {
+ if (strcmp(method, "classic") == 0) {
/* PAM_data.classic = 1; */
pam_service = caller;
+ } else if (strcmp(method, "generic") == 0) {
+ pam_service = caller;
+ } else {
+ sprintf(pservb, "%.31s-%.31s", caller, method);
+ pam_service = pservb;
}
pam_error = pam_start(pam_service, user, &PAM_conversation, &pamh);
if (pam_error != PAM_SUCCESS)
--- kdm/backend/client.c
+++ kdm/backend/client.c
@@ -537,7 +537,8 @@
#ifdef USE_PAM
pnopass = False;
- if (!strcmp(curtype, "classic")) {
+ pdata.usecur = False;
+ if (!strcmp(curtype, "classic") || !strcmp(curtype, "generic")) {
if (!gconv(GCONV_USER, 0))
return False;
if (isNoPassAllowed(curuser)) {
@@ -552,11 +553,11 @@
} else {
psrv = PAMService;
}
- pdata.usecur = True;
+ if (!strcmp(curtype, "classic"))
+ pdata.usecur = True;
} else {
sprintf(psrvb, "%.31s-%.31s", PAMService, curtype);
psrv = psrvb;
- pdata.usecur = False;
}
pdata.gconv = gconv;
if (!doPAMAuth(psrv, &pdata))
--- libs/kdm/kgreet_generic.cpp
+++ libs/kdm/kgreet_generic.cpp
@@ -156,6 +156,7 @@
exp =
exp >= 0 ||
func != Authenticate ||
+ !echo ||
!(kgreeterplugin_info.flags & KGreeterPluginInfo::Presettable);
if (!exp && !fixedUser.isEmpty()) {
@@ -325,8 +326,7 @@
echoMode = getConf(ctx, "EchoMode", QVariant(-1)).toInt();
// Fielded entities are not supported per se.
// This implies that the first field is the presettable entity, if any.
- if (getConf(ctx, "generic.Presettable", QVariant(false)).toBool())
- kgreeterplugin_info.flags |= KGreeterPluginInfo::Presettable;
+ kgreeterplugin_info.flags |= KGreeterPluginInfo::Presettable;
KGlobal::locale()->insertCatalog("kgreet_generic");
return true;
}