#!/usr/share/ucs-test/runner bash
## desc: Create OX users and test the OX login
## bugs: [31870]
## packages:
##  - univention-ox
## tags:
##  - apptest
## exposure: dangerous

. "/usr/share/univention-lib/all.sh" || exit 137
. "ox.sh" || exit 137

eval "$(/usr/sbin/ucr shell)"

RETVAL=100

username1="$(user_randomname)"
mail1="$(random_mailaddress)@$domainname"

username2="$(user_randomname)"

username3="$(user_randomname)"
mail3="$(random_mailaddress)@$domainname"

create_ox_user "$username1" "$mail1"
create_non_ox_user "$username2"
create_ox_user "$username3" "$mail3"

wait_for_replication

ox_login "$username1" "univention" || fail_test 110 "Login as OX user was denied"
ox_login "$username1" "univention1" && fail_test 110 "Permitted login with a wrong password"
ox_login "$username1" "geheim" && fail_test 110 "Permitted login with a wrong password"
# FIXME: non-OX-user gets {"category":5,"error":"Login not possible at the moment. Please try again later.","error_id":"109602981-319","categories":"SERVICE_DOWN","code":"LGI-0005","error_desc":"Login not possible at the moment."}
ox_login "$username2" "univention" && fail_test 110 "Login as non-OX user was allowd"
ox_login "$username3" "univention" || fail_test 110 "Login as OX user was denied"

new_password="$(random_string)"
change_password "$username3" "$new_password"

wait_for_replication

ox_login "$username3" "univention" && fail_test 110 "Login as OX user with the old password was allowed"
ox_login "$username3" "$new_password" || fail_test 110 "Login as OX user with the new password was denied"

user_remove "$username1"
user_remove "$username2"
user_remove "$username3"

wait_for_replication

exit $RETVAL
# vim:set ft=sh:
