[Thomas John Sødring]
> Ja, for saksbehandling så vil brukeren måtte være koblet til en
> administrativEnhet. Dette i henhold til å kunne produsere uttrekk der
> det er mulig å sette en verdi på administrativEnhet i henhold til:
Jeg fant feilen. Det ser ut som at tidligere hadde testoppsettets
organisajon navnet 'Organisation', mens nå heter den 'Demo
Organisation'. Brukeren fungerte bedre når jeg oppdaterte
ad_user.user_organisation_id. Neste problem var mangel på
administrativEnhet-referanse, som du korrekt observerer og kommer med
gode løsninger på. I denne omgang setter jeg opp bruker til å være del
av automatisk opprettede 'example test administrative unit', men på sikt
vil vi lage egne enheter her.
Her er oppdatert nikita-create-user-psql (byttet navn).
#!/bin/sh
# Author: Petter Reinholdtsen
# License: GPL v2 or later at your choice
PGHOST=dbpg-uio-utv03.uio.no
PGUSER=nikita_noark5_test_user
PGDB=nikita_noark5_test
usage() {
echo "$0: <username> <firstname> <lastname> [<organization name>] [<adm unit name>] [<role name>]"
}
if [ -z "$3" ] ; then
usage
exit 1
fi
USERNAME="$1"
FIRSTNAME="$2"
LASTNAME="$3"
if [ -z "$4" ]; then
ORG="Demo Organisation"
else
ORG="$4"
fi
if [ -z "$5" ] ; then
ADM_UNIT="example test administrative unit"
else
ADM_UNIT="$5"
fi
if [ -z "$6" ]; then
ROLE="RECORDS_MANAGER"
fi
USERUUID="$(uuidgen)"
psql --port 5432 --host $PGHOST --user $PGUSER $PGDB -c "
BEGIN TRANSACTION;
INSERT INTO system_id_entity(
system_id,
created_date,
last_modified_date,
created_by,
owned_by,
version,
dtype
) VALUES (
'$USERUUID',
NOW(),
NOW(),
'system',
null,
0,
'User'
);
INSERT INTO ad_user(
system_id,
username,
firstname,
lastname,
account_non_expired,
credentials_non_expired,
account_non_locked,
enabled,
user_organisation_id
) VALUES (
'$USERUUID',
'$USERNAME',
'$FIRSTNAME',
'$LASTNAME',
true,
true,
true,
true,
(SELECT system_id FROM ad_organisation WHERE organisation_name = '$ORG')
);
INSERT INTO ad_administrative_unit_user(
f_pk_administrative_unit_id,
f_pk_user_id
) VALUES (
(SELECT system_id FROM ad_administrative_unit WHERE administrative_unit_name = '$ADM_UNIT'),
'$USERUUID'
);
--INSERT INTO ad_user_authority(
-- authority_id,
-- f_pk_user_id
--) VALUES (
-- (SELECT id FROM ad_authority WHERE authority_name = '$ROLE'),
-- '$USERUUID'
--);
END TRANSACTION;
"
Jeg vil også lage scripts/nikita-create-adm-unit-psql og
scripts/nikita-create-org-psql for å kunne starte med blanke ark, men
det kommer senere.
--
Vennlig hilsen
Petter Reinholdtsen