Adapt welcome wallpaper to SGU gender
This commit is contained in:
@@ -53,6 +53,7 @@ computer_name=${computer_name^^}
|
||||
location=''
|
||||
distinguished_name=''
|
||||
organizational_unit=''
|
||||
gender=''
|
||||
|
||||
read_ldif_value() {
|
||||
local attribute=$1
|
||||
@@ -108,9 +109,18 @@ if [[ -n $DOMAIN_CONTROLLER && -n $BASE_DN ]] &&
|
||||
user_result=$(ldapsearch -LLL -N -o ldif-wrap=no -Y GSSAPI \
|
||||
-H "ldap://${ldap_server}" -b "$BASE_DN" \
|
||||
"(&(objectCategory=person)(objectClass=user)(sAMAccountName=${account_name}))" \
|
||||
displayName 2>/dev/null || true)
|
||||
displayName info 2>/dev/null || true)
|
||||
directory_display_name=$(read_ldif_value displayName "$user_result")
|
||||
[[ -n $directory_display_name ]] && display_name=$directory_display_name
|
||||
directory_info=$(read_ldif_value info "$user_result")
|
||||
gender=$(printf '%s\n' "$directory_info" | awk -F: '
|
||||
tolower($1) ~ /^[[:space:]]*sgu-gender[[:space:]]*$/ {
|
||||
value=tolower($2); gsub(/^[[:space:]]+|[[:space:]]+$/, "", value)
|
||||
if (value == "male") print "Male"
|
||||
else if (value == "female") print "Female"
|
||||
exit
|
||||
}
|
||||
')
|
||||
fi
|
||||
else
|
||||
log_message 'WARN AD metadata query skipped because Kerberos or LDAP session data was unavailable.'
|
||||
@@ -136,6 +146,24 @@ with_article() {
|
||||
fi
|
||||
}
|
||||
|
||||
case "$gender" in
|
||||
Male)
|
||||
welcome_text='Bienvenido,'
|
||||
located_text='Estás ubicado en'
|
||||
engineering_lab_text='Bienvenido al Laboratorio de Cómputo de Ingeniería.'
|
||||
;;
|
||||
Female)
|
||||
welcome_text='Bienvenida,'
|
||||
located_text='Estás ubicada en'
|
||||
engineering_lab_text='Bienvenida al Laboratorio de Cómputo de Ingeniería.'
|
||||
;;
|
||||
*)
|
||||
welcome_text='Te damos la bienvenida,'
|
||||
located_text='Ubicación:'
|
||||
engineering_lab_text='Acceso al Laboratorio de Cómputo de Ingeniería.'
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ -n $location && -n $organizational_unit ]]; then
|
||||
room_phrase=$(with_article "$location")
|
||||
ou_article=$(article_for "$organizational_unit")
|
||||
@@ -146,13 +174,13 @@ if [[ -n $location && -n $organizational_unit ]]; then
|
||||
else
|
||||
ou_phrase="de ${organizational_unit}"
|
||||
fi
|
||||
location_text="Estás ubicado en ${room_phrase} ${ou_phrase}."
|
||||
location_text="${located_text} ${room_phrase} ${ou_phrase}."
|
||||
elif [[ -n $location ]]; then
|
||||
location_text="Estás ubicado en $(with_article "$location")."
|
||||
location_text="${located_text} $(with_article "$location")."
|
||||
elif [[ -n $organizational_unit ]]; then
|
||||
location_text="Estás ubicado en $(with_article "$organizational_unit")."
|
||||
location_text="${located_text} $(with_article "$organizational_unit")."
|
||||
else
|
||||
location_text='Bienvenido al Laboratorio de Cómputo de Ingeniería.'
|
||||
location_text=$engineering_lab_text
|
||||
fi
|
||||
|
||||
width=1600
|
||||
@@ -210,7 +238,7 @@ if ! "${image_command[@]}" "$BASE_IMAGE" \
|
||||
-gravity center \
|
||||
-font "$sans_font" -weight 700 -style Normal -pointsize "$welcome_size" \
|
||||
-fill '#D3E2FF' -stroke 'rgba(0,0,0,0.48)' -strokewidth 1 \
|
||||
-annotate "+0-$(( 92 * scale / 100 ))" 'Bienvenido,' \
|
||||
-annotate "+0-$(( 92 * scale / 100 ))" "$welcome_text" \
|
||||
-font "$serif_font" -weight 700 -style Italic -pointsize "$name_size" \
|
||||
-fill white -annotate "+0-$(( 22 * scale / 100 ))" "$display_name" \
|
||||
-font "$sans_font" -weight 400 -style Normal -pointsize "$location_size" \
|
||||
@@ -242,7 +270,7 @@ if [[ $applied == false ]] && command -v xfconf-query >/dev/null 2>&1; then
|
||||
fi
|
||||
|
||||
if [[ $applied == true ]]; then
|
||||
log_message "OK computer=${computer_name}; location=$([[ -n $location ]] && printf true || printf false); ou=$([[ -n $organizational_unit ]] && printf true || printf false); output=${output_path}"
|
||||
log_message "OK computer=${computer_name}; gender=${gender:-Neutral}; location=$([[ -n $location ]] && printf true || printf false); ou=$([[ -n $organizational_unit ]] && printf true || printf false); output=${output_path}"
|
||||
else
|
||||
log_message 'WARN Wallpaper rendered, but no supported desktop background API was found.'
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user