data/Makefile.am | 3 ++ data/lightdm-greeter-hide-users | 76 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) diff --git a/data/Makefile.am b/data/Makefile.am index 8a7c26c5..6bf6bb8f 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -51,3 +51,6 @@ CLEANFILES = lightdm-guest-session $(polkit_DATA) x11dir = $(sysconfdir)/X11 dist_x11_SCRIPTS = Xgreeter.lightdm + +controldir = $(sysconfdir)/control.d/facilities +control_SCRIPTS = lightdm-greeter-hide-users diff --git a/data/lightdm-greeter-hide-users b/data/lightdm-greeter-hide-users new file mode 100755 index 00000000..a01e3d4a --- /dev/null +++ b/data/lightdm-greeter-hide-users @@ -0,0 +1,76 @@ +#!/bin/sh + +. /etc/control.d/functions +. /bin/shell-ini-config +shell_ini_config_prefix='' + +CONFIG=/etc/lightdm/lightdm.conf + +SUMMARY="${SUMMARY:-Show or hide the list of known users in the greeter}" + +ON_NAME="${ON_NAME:-hide}" +ON_HELP="${ON_HELP:-Hide the user list}" +ON_HOOK="${ON_HOOK:-}" +ON_TEST="${ON_TEST:-}" + +OFF_NAME="${OFF_NAME:-show}" +OFF_HELP="${OFF_HELP:-Show the user list}" +OFF_HOOK="${OFF_HOOK:-}" +OFF_TEST="${OFF_TEST:-}" + +SECTION="${SECTION:-Seat:*}" +VARNAME="${VARNAME:-greeter-hide-users}" + +new_summary "$SUMMARY" +new_help "$OFF_NAME" "$OFF_HELP" +new_help "$ON_NAME" "$ON_HELP" + +REQUEST="$*" + +case "$REQUEST" in + help|'help '*) + control_help "${REQUEST#help}" + ;; + list) + control_list + ;; + summary) + control_summary + ;; + status) + CURRENT="$(ini_config_get "$CONFIG" "$SECTION" "$VARNAME")" + case "$CURRENT" in + [Tt][Rr][Uu][Ee]) + if [ -n "$ON_TEST" ]; then + if _ret="$("$ON_TEST" "$CURRENT")"; then + echo "$ON_NAME" + else + echo "${_ret:-misconfigured}" + fi + else + echo "$ON_NAME" + fi + ;; + *) + if [ -n "$OFF_TEST" ]; then + if _ret="$("$OFF_TEST" "$CURRENT")"; then + echo "$OFF_NAME" + else + echo "${_ret:-misconfigured}" + fi + else + echo "$OFF_NAME" + fi + ;; + esac + ;; + *) + if [ "$REQUEST" = "$ON_NAME" ]; then + ini_config_set "$CONFIG" "$SECTION" "$VARNAME" 'true' + [ -z "$ON_HOOK" ] || "$ON_HOOK" "$@" + elif [ "$REQUEST" = "$OFF_NAME" ]; then + ini_config_set "$CONFIG" "$SECTION" "$VARNAME" 'false' + [ -z "$OFF_HOOK" ] || "$OFF_HOOK" "$@" + fi + ;; +esac