# $Id$
export ROOT_PASSWORD_DIALOG='
data/header.png
echo "${ROOT_PASSWORD}"
ROOT_PASSWORD
echo "${ROOT_PASSWORD_RETYPE}"
ROOT_PASSWORD_RETYPE
'
#check_password "${ROOT_PASSWORD}" "${ROOT_PASSWORD_RETYPE}"
# ROOT_PASSWORD
export ADD_USER_DIALOG='
data/header.png
echo "${USER_NAME}"
USER_NAME
echo "${USER_PASSWORD}"
USER_PASSWORD
echo "${USER_PASSWORD_RETYPE}"
USER_PASSWORD_RETYPE
'
check_password()
{
local pass1="$1"
local pass2="$2"
debug "pass1='${pass1}'"
if [[ -z ${pass1} ]]
then
# echo "Empty Password given."
FAILURE_MESSAGE="Empty password given!" rundialog FAILURE_DIALOG
return 1
fi
if [[ ${pass1} = ${pass2} ]]
then
# echo "Password match."
return 0
else
FAILURE_MESSAGE="Password did not match!" rundialog FAILURE_DIALOG
# echo "DEBUG: pass1='${pass1}'"
# echo "DEBUG: pass2='${pass2}'"
# echo "Password did *not* match.
return 1
fi
}
# needed to be available in the gtk-dialog
export -f check_password
## main programm ##
rundialog_root_password_dialog()
{
rundialog ROOT_PASSWORD_DIALOG
debug "EXIT='${EXIT}'"
# save given variables in env
# they will be shown as default on error
export ROOT_PASSWORD
export ROOT_PASSWORD_RETYPE
case ${EXIT} in
abort)
echo "Aborted by user."
exit 1
;;
back)
# placeholder
return 1
;;
next)
if ! check_password "${ROOT_PASSWORD}" "${ROOT_PASSWORD_RETYPE}"
then
rundialog_root_password_dialog
fi
;;
esac
}
rundialog_add_user_dialog()
{
rundialog ADD_USER_DIALOG
debug "EXIT='${EXIT}'"
# save given variables in env
# they will be shown as default on error
export USER_NAME
export USER_PASSWORD
export USER_PASSWORD_RETYPE
case ${EXIT} in
abort)
echo "Aborted by user."
exit 1
;;
back)
rundialog_root_password_dialog
rundialog_add_user_dialog
;;
next)
if [[ -z ${USER_NAME} ]]
then
rundialog USERNAME_FAILURE
rundialog_add_user_dialog
fi
if ! check_password "${USER_PASSWORD}" "${USER_PASSWORD_RETYPE}"
then
rundialog_add_user_dialog
fi
;;
esac
}
main_usermanagement()
{
rundialog_root_password_dialog
rundialog_add_user_dialog
# export all variables
export ROOT_PASSWORD
export USER_NAME
export USER_PASSWORD
}