on xenial help sign in
Display real name of current user in greeter
1648356Michael Terry
CMakeLists.txt+3
@@ -58,6 +58,9 @@ find_package(Qt5Concurrent 5.4 REQUIRED)
58find_package(Qt5Sql 5.4 REQUIRED)
58find_package(Qt5Sql 5.4 REQUIRED)
59
59
60pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=12)
60pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=12)
61+pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
62+pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
63+pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
61
64
62# Standard install paths
65# Standard install paths
63include(GNUInstallDirs)
66include(GNUInstallDirs)
plugins/IntegratedLightDM/liblightdm/CMakeLists.txt+3
@@ -13,14 +13,17 @@ add_library(MockLightDM-demo-shared SHARED ${LibLightDM_SOURCES})
13
13
14include_directories(
14include_directories(
15 ${CMAKE_CURRENT_BINARY_DIR}
15 ${CMAKE_CURRENT_BINARY_DIR}
16+ ${GLIB_INCLUDE_DIRS}
16 ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
17 ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
17)
18)
18
19
19target_link_libraries(integratedLightDM
20target_link_libraries(integratedLightDM
21+ ${GLIB_LIBRARIES}
20 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
22 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
21 -lpam
23 -lpam
22)
24)
23target_link_libraries(MockLightDM-demo-shared
25target_link_libraries(MockLightDM-demo-shared
26+ ${GLIB_LIBRARIES}
24 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
27 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
25 -lpam
28 -lpam
26)
29)
plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp+33−7
@@ -18,9 +18,11 @@
18
18
19#include "UsersModelPrivate.h"
19#include "UsersModelPrivate.h"
20
20
21+#include <glib.h>
21#include <QDir>
22#include <QDir>
22#include <QSettings>
23#include <QSettings>
23#include <QStringList>
24#include <QStringList>
25+#include <unistd.h>
24
26
25namespace QLightDM
27namespace QLightDM
26{
28{
@@ -28,14 +30,38 @@ namespace QLightDM
28UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
30UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
29 : q_ptr(parent)
31 : q_ptr(parent)
30{
32{
31− QSettings settings(QDir::homePath() + "/.unity8-greeter-demo", QSettings::NativeFormat);
33+ QFileInfo demoFile(QDir::homePath() + "/.unity8-greeter-demo");
32− QStringList users = settings.value(QStringLiteral("users"), QStringList() << qgetenv("USER")).toStringList();
34+ QString currentUser = g_get_user_name();
33
35
36+ if (demoFile.exists()) {
37+ QSettings settings(demoFile.filePath(), QSettings::NativeFormat);
38+ QStringList users = settings.value(QStringLiteral("users"), QStringList() << currentUser).toStringList();
39+
34− entries.reserve(users.count());
40+ entries.reserve(users.count());
35− Q_FOREACH(const QString &user, users)
41+ Q_FOREACH(const QString &user, users)
36− {
42+ {
37− QString name = settings.value(user + "/name", user).toString();
43+ QString name = settings.value(user + "/name", user).toString();
38− entries.append({user, name, 0, 0, false, false, 0, 0});
44+ entries.append({user, name, 0, 0, false, false, 0, 0});
45+ }
46+ } else {
47+ // If we were using the actual liblightdm, we could just ask it
48+ // for the user's real name. But we aren't. We *should* ask
49+ // AccountsService for the real name, like liblightdm does internally,
50+ // but this is close enough since AS and passwd are always in sync.
51+ QString realName = g_get_real_name(); // gets name from passwd entry
52+ if (realName == QStringLiteral("Unknown")) { // glib doesn't translate this string
53+ realName = QStringLiteral("");
54+ }
55+ if (realName == QStringLiteral("phablet")
56+ && currentUser == QStringLiteral("phablet")
57+ && getuid() == 32011
58+ && getgid() == 32011) {
59+ // This *should* be set at image-creation time, but it hasn't
60+ // always been, so we have to do it here for at least the upgrade
61+ // case. And until it is fixed at image-creation.
62+ realName = QStringLiteral("Ubuntu"); // is brand name, so not translated
63+ }
64+ entries.append({currentUser, realName, 0, 0, false, false, 0, 0});
39 }
65 }
40}
66}
41
67
plugins/Powerd/CMakeLists.txt−2
@@ -1,5 +1,3 @@
1−pkg_search_module(GIO REQUIRED gio-2.0)
2−
3include_directories(
1include_directories(
4 ${GIO_INCLUDE_DIRS}
2 ${GIO_INCLUDE_DIRS}
5)
3)
plugins/Unity/Indicators/CMakeLists.txt−4
@@ -1,9 +1,5 @@
1project(IndicatorsQml)
1project(IndicatorsQml)
2
2
3−pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
4−pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
5−pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
6−
7find_package(Qt5Core REQUIRED)
3find_package(Qt5Core REQUIRED)
8find_package(Qt5Quick REQUIRED)
4find_package(Qt5Quick REQUIRED)
9
5
plugins/Unity/Session/CMakeLists.txt−2
@@ -1,5 +1,3 @@
1−pkg_search_module(GIO REQUIRED gio-2.0)
2−
3include_directories(
1include_directories(
4 ${CMAKE_CURRENT_SOURCE_DIR}
2 ${CMAKE_CURRENT_SOURCE_DIR}
5 ${CMAKE_CURRENT_BINARY_DIR}
3 ${CMAKE_CURRENT_BINARY_DIR}
plugins/Utils/CMakeLists.txt−2
@@ -1,5 +1,3 @@
1−pkg_search_module(GIO REQUIRED gio-2.0)
2−
3include_directories(
1include_directories(
4 ${CMAKE_CURRENT_SOURCE_DIR}
2 ${CMAKE_CURRENT_SOURCE_DIR}
5 ${CMAKE_CURRENT_BINARY_DIR}
3 ${CMAKE_CURRENT_BINARY_DIR}
tests/mocks/Utils/CMakeLists.txt−2
@@ -1,5 +1,3 @@
1−pkg_search_module(GIO REQUIRED gio-2.0)
2−
3include_directories(
1include_directories(
4 ${CMAKE_CURRENT_SOURCE_DIR}
2 ${CMAKE_CURRENT_SOURCE_DIR}
5 ${CMAKE_CURRENT_BINARY_DIR}
3 ${CMAKE_CURRENT_BINARY_DIR}
tests/mocks/indicator-service/CMakeLists.txt−1
@@ -1,5 +1,4 @@
1project(mock-indicator-service)
1project(mock-indicator-service)
2−pkg_search_module(GIO REQUIRED gio-2.0)
3
2
4set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
3set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
5
4
tests/plugins/Unity/Indicators/CMakeLists.txt−4
@@ -1,7 +1,3 @@
1−pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
2−pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
3−pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
4−
5set(INDICATORS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../plugins/Unity/Indicators)
1set(INDICATORS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../plugins/Unity/Indicators)
6set(TEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
2set(TEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
7
3