[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