!128 fix-invalid-automatic-login
From: @hua_yadong Reviewed-by: @peijiankang Signed-off-by: @peijiankang
This commit is contained in:
commit
fb75c373a0
175
ukui-control-center-3.0.4-fix-invalid-automatic-login.patch
Normal file
175
ukui-control-center-3.0.4-fix-invalid-automatic-login.patch
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
From 354eaef4c59308e58792258fc37bfef4d74eaaf5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: huayadong <huayadong@kylinos.cn>
|
||||||
|
Date: Wed, 4 Jan 2023 15:03:57 +0800
|
||||||
|
Subject: [PATCH] xxxxxxxxxxxxxxxxxx
|
||||||
|
|
||||||
|
---
|
||||||
|
data/95-SeatDefaults.conf | 2 ++
|
||||||
|
.../userinfo/qtdbus/userdispatcher.cpp | 4 ++--
|
||||||
|
.../account/userinfo/qtdbus/userdispatcher.h | 2 +-
|
||||||
|
plugins/account/userinfo/userinfo.cpp | 21 ++++++-------------
|
||||||
|
registeredQDbus/sysdbusregister.cpp | 10 ++++++---
|
||||||
|
registeredQDbus/sysdbusregister.h | 2 +-
|
||||||
|
ukui-control-center.pro | 6 +++++-
|
||||||
|
7 files changed, 24 insertions(+), 23 deletions(-)
|
||||||
|
create mode 100644 data/95-SeatDefaults.conf
|
||||||
|
|
||||||
|
diff --git a/data/95-SeatDefaults.conf b/data/95-SeatDefaults.conf
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..bf666a2
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/data/95-SeatDefaults.conf
|
||||||
|
@@ -0,0 +1,2 @@
|
||||||
|
+[SeatDefaults]
|
||||||
|
+autologin-user=
|
||||||
|
diff --git a/plugins/account/userinfo/qtdbus/userdispatcher.cpp b/plugins/account/userinfo/qtdbus/userdispatcher.cpp
|
||||||
|
index a13d4fa..8617b79 100644
|
||||||
|
--- a/plugins/account/userinfo/qtdbus/userdispatcher.cpp
|
||||||
|
+++ b/plugins/account/userinfo/qtdbus/userdispatcher.cpp
|
||||||
|
@@ -104,7 +104,7 @@ void UserDispatcher::change_user_name(QString newName){
|
||||||
|
useriface->call("SetRealName", QVariant(newName));
|
||||||
|
}
|
||||||
|
|
||||||
|
-void UserDispatcher::change_user_autologin(QString username){
|
||||||
|
+void UserDispatcher::change_user_autologin(bool checked, QString username){
|
||||||
|
QDBusInterface * tmpSysinterface = new QDBusInterface("com.control.center.qt.systemdbus",
|
||||||
|
"/",
|
||||||
|
"com.control.center.interface",
|
||||||
|
@@ -114,7 +114,7 @@ void UserDispatcher::change_user_autologin(QString username){
|
||||||
|
qCritical() << "Create Client Interface Failed When : " << QDBusConnection::systemBus().lastError();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
- tmpSysinterface->call("setAutoLoginStatus", username);
|
||||||
|
+ tmpSysinterface->call("setAutoLoginStatus", checked, username);
|
||||||
|
|
||||||
|
delete tmpSysinterface;
|
||||||
|
tmpSysinterface = nullptr;
|
||||||
|
diff --git a/plugins/account/userinfo/qtdbus/userdispatcher.h b/plugins/account/userinfo/qtdbus/userdispatcher.h
|
||||||
|
index b498c15..41b2425 100644
|
||||||
|
--- a/plugins/account/userinfo/qtdbus/userdispatcher.h
|
||||||
|
+++ b/plugins/account/userinfo/qtdbus/userdispatcher.h
|
||||||
|
@@ -51,7 +51,7 @@ public:
|
||||||
|
QString change_user_pwd(QString pwd, QString hint);
|
||||||
|
void change_user_type(int atype);
|
||||||
|
void change_user_face(QString facefile);
|
||||||
|
- void change_user_autologin(QString username);
|
||||||
|
+ void change_user_autologin(bool checked, QString username);
|
||||||
|
void change_user_name(QString newName);
|
||||||
|
bool get_autoLogin_status();
|
||||||
|
|
||||||
|
diff --git a/plugins/account/userinfo/userinfo.cpp b/plugins/account/userinfo/userinfo.cpp
|
||||||
|
index a86088b..9727c00 100644
|
||||||
|
--- a/plugins/account/userinfo/userinfo.cpp
|
||||||
|
+++ b/plugins/account/userinfo/userinfo.cpp
|
||||||
|
@@ -765,11 +765,15 @@ void UserInfo::setUserConnect(){
|
||||||
|
Q_UNUSED(checked)
|
||||||
|
showChangeGroupDialog();
|
||||||
|
});
|
||||||
|
+ UserInfomation username = allUserInfoMap.value(g_get_user_name());
|
||||||
|
+ autoLoginSBtn->setChecked(!getAutomaticLogin().compare(username.username, Qt::CaseSensitive));
|
||||||
|
|
||||||
|
//自动登录登录
|
||||||
|
connect(autoLoginSBtn, &SwitchButton::checkedChanged, autoLoginSBtn, [=](bool checked){
|
||||||
|
UserInfomation user = allUserInfoMap.value(g_get_user_name());
|
||||||
|
|
||||||
|
+ UserDispatcher * userdispatcher = new UserDispatcher(user.objpath);
|
||||||
|
+
|
||||||
|
QString autoUser = getAutomaticLogin();
|
||||||
|
qDebug() << "Current Auto User:" << autoUser;
|
||||||
|
|
||||||
|
@@ -783,20 +787,7 @@ void UserInfo::setUserConnect(){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- QDBusMessage message = QDBusMessage::createMethodCall("org.freedesktop.Accounts",
|
||||||
|
- user.objpath,
|
||||||
|
- "org.freedesktop.Accounts.User",
|
||||||
|
- "SetAutomaticLogin");
|
||||||
|
- message << checked;
|
||||||
|
- QDBusMessage response = QDBusConnection::systemBus().call(message);
|
||||||
|
-
|
||||||
|
- if (response.type() == QDBusMessage::ErrorMessage){
|
||||||
|
-
|
||||||
|
- autoLoginSBtn->blockSignals(true);
|
||||||
|
- autoLoginSBtn->setChecked(!checked);
|
||||||
|
- autoLoginSBtn->blockSignals(false);
|
||||||
|
- }
|
||||||
|
+ userdispatcher->change_user_autologin(checked, user.username);
|
||||||
|
});
|
||||||
|
|
||||||
|
//免密登录
|
||||||
|
@@ -981,7 +972,7 @@ bool UserInfo::isLastAdmin(QString uname){
|
||||||
|
|
||||||
|
QString UserInfo::getAutomaticLogin() {
|
||||||
|
|
||||||
|
- QString filename = "/etc/lightdm/lightdm.conf";
|
||||||
|
+ QString filename = "/usr/share/lightdm/lightdm.conf.d/95-SeatDefaults.conf";
|
||||||
|
autoSettings = new QSettings(filename, QSettings::IniFormat);
|
||||||
|
autoSettings->beginGroup("SeatDefaults");
|
||||||
|
|
||||||
|
diff --git a/registeredQDbus/sysdbusregister.cpp b/registeredQDbus/sysdbusregister.cpp
|
||||||
|
index d928d41..8b05278 100644
|
||||||
|
--- a/registeredQDbus/sysdbusregister.cpp
|
||||||
|
+++ b/registeredQDbus/sysdbusregister.cpp
|
||||||
|
@@ -167,7 +167,7 @@ int SysdbusRegister::setNoPwdLoginStatus(bool status,QString username)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置自动登录状态
|
||||||
|
-int SysdbusRegister::setAutoLoginStatus(QString username) {
|
||||||
|
+int SysdbusRegister::setAutoLoginStatus(bool checked, QString username) {
|
||||||
|
//密码校验
|
||||||
|
QDBusConnection conn = connection();
|
||||||
|
QDBusMessage msg = message();
|
||||||
|
@@ -175,11 +175,15 @@ int SysdbusRegister::setAutoLoginStatus(QString username) {
|
||||||
|
if (!authoriyAutoLogin(conn.interface()->servicePid(msg.service()).value())){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
- QString filename = "/etc/lightdm/lightdm.conf";
|
||||||
|
+ QString filename = "/usr/share/lightdm/lightdm.conf.d/95-SeatDefaults.conf";
|
||||||
|
QSharedPointer<QSettings> autoSettings = QSharedPointer<QSettings>(new QSettings(filename, QSettings::IniFormat));
|
||||||
|
autoSettings->beginGroup("SeatDefaults");
|
||||||
|
|
||||||
|
- autoSettings->setValue("autologin-user", username);
|
||||||
|
+ if(true == checked){
|
||||||
|
+ autoSettings->setValue("autologin-user", username);
|
||||||
|
+ }else{
|
||||||
|
+ autoSettings->setValue("autologin-user", "");
|
||||||
|
+ }
|
||||||
|
|
||||||
|
autoSettings->endGroup();
|
||||||
|
autoSettings->sync();
|
||||||
|
diff --git a/registeredQDbus/sysdbusregister.h b/registeredQDbus/sysdbusregister.h
|
||||||
|
index d9fca66..7942715 100644
|
||||||
|
--- a/registeredQDbus/sysdbusregister.h
|
||||||
|
+++ b/registeredQDbus/sysdbusregister.h
|
||||||
|
@@ -95,7 +95,7 @@ public slots:
|
||||||
|
Q_SCRIPTABLE QString getNoPwdLoginStatus();
|
||||||
|
|
||||||
|
// 设置自动登录状态
|
||||||
|
- Q_SCRIPTABLE int setAutoLoginStatus(QString username);
|
||||||
|
+ Q_SCRIPTABLE int setAutoLoginStatus(bool checked, QString username);
|
||||||
|
|
||||||
|
Q_SCRIPTABLE int DeleteUser(qint64 userId, bool removeWhole);
|
||||||
|
|
||||||
|
diff --git a/ukui-control-center.pro b/ukui-control-center.pro
|
||||||
|
index 39966b2..e5c8556 100644
|
||||||
|
--- a/ukui-control-center.pro
|
||||||
|
+++ b/ukui-control-center.pro
|
||||||
|
@@ -36,8 +36,12 @@ search_file.files = shell/res/search.xml
|
||||||
|
|
||||||
|
INCLUDEPATH += /usr/lib/gcc/aarch64-linux-gnu/9/include/
|
||||||
|
|
||||||
|
+lightdm.files = data/95-SeatDefaults.conf
|
||||||
|
+lightdm.path = /usr/share/lightdm/lightdm.conf.d/
|
||||||
|
+
|
||||||
|
INSTALLS += qm_files \
|
||||||
|
- search_file
|
||||||
|
+ search_file \
|
||||||
|
+ lightdm
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
shell/utils/mthread.h \
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
%define debug_package %{nil}
|
%define debug_package %{nil}
|
||||||
Name: ukui-control-center
|
Name: ukui-control-center
|
||||||
Version: 3.1.2
|
Version: 3.1.2
|
||||||
Release: 6
|
Release: 7
|
||||||
Summary: utilities to configure the UKUI desktop
|
Summary: utilities to configure the UKUI desktop
|
||||||
License: GPL-2+
|
License: GPL-2+
|
||||||
URL: http://www.ukui.org
|
URL: http://www.ukui.org
|
||||||
@ -11,6 +11,7 @@ Patch02: 0001-modify-version-info-error.patch
|
|||||||
Patch03: 0003-fix-power-missing-issue.patch
|
Patch03: 0003-fix-power-missing-issue.patch
|
||||||
Patch05: 0005-Fix-the-problem-of-displaying-none-in-the-interface-version-information.patch
|
Patch05: 0005-Fix-the-problem-of-displaying-none-in-the-interface-version-information.patch
|
||||||
Patch07: 0007-modify-icon-theme-not-display.patch
|
Patch07: 0007-modify-icon-theme-not-display.patch
|
||||||
|
Patch08: ukui-control-center-3.0.4-fix-invalid-automatic-login.patch
|
||||||
|
|
||||||
|
|
||||||
BuildRequires: qt5-qtsvg-devel
|
BuildRequires: qt5-qtsvg-devel
|
||||||
@ -82,7 +83,7 @@ The UKUI control center contains configuration applets for the UKUI des allowing
|
|||||||
|
|
||||||
%build
|
%build
|
||||||
qmake-qt5
|
qmake-qt5
|
||||||
make -j24
|
make -j2
|
||||||
|
|
||||||
%install
|
%install
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
@ -97,6 +98,12 @@ glib-compile-schemas /usr/share/glib-2.0/schemas/ &> /dev/null ||:
|
|||||||
chown root:root /usr/bin/checkUserPwd
|
chown root:root /usr/bin/checkUserPwd
|
||||||
chmod u+s /usr/bin/checkUserPwd
|
chmod u+s /usr/bin/checkUserPwd
|
||||||
|
|
||||||
|
sed -i "1iauth sufficient pam_succeed_if.so user ingroup nopasswdlogin" /etc/pam.d/lightdm
|
||||||
|
groupadd nopasswdlogin &> /dev/null ||:
|
||||||
|
|
||||||
|
%postun
|
||||||
|
sed -i "/auth sufficient pam_succeed_if.so user ingroup nopasswdlogin/d" /etc/pam.d/lightdm
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
@ -115,6 +122,7 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{_datadir}/ukui/faces/*
|
%{_datadir}/ukui/faces/*
|
||||||
%{_datadir}/ukui-control-center/shell/res/*
|
%{_datadir}/ukui-control-center/shell/res/*
|
||||||
%{_libdir}/ukui-control-center/*
|
%{_libdir}/ukui-control-center/*
|
||||||
|
%{_datadir}/lightdm/lightdm.conf.d/95-SeatDefaults.conf
|
||||||
|
|
||||||
%files -n libukcc-devel
|
%files -n libukcc-devel
|
||||||
%{_includedir}/ukcc/interface/*.h
|
%{_includedir}/ukcc/interface/*.h
|
||||||
@ -123,6 +131,9 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Dec 30 2022 huayadong <huayadong@kylinos.cn> - 3.1.2-7
|
||||||
|
- Fix invalid automatic login, fix invalid password free login
|
||||||
|
|
||||||
* Thu Dec 29 2022 peijiankang <peijiankang@kylinos.cn> - 3.1.2-6
|
* Thu Dec 29 2022 peijiankang <peijiankang@kylinos.cn> - 3.1.2-6
|
||||||
- modify icon theme not display
|
- modify icon theme not display
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user