From abef757918e6f214835d123993d6a7f7cc37ce34 Mon Sep 17 00:00:00 2001 From: Bernd Ritter Date: Fri, 19 Apr 2024 09:22:18 +0200 Subject: [PATCH] UserRoles waren nicht unique, Script zum Adminifizieren eines Users --- README.md | 50 +++++++++---------- doc/db2/01_schema/02a_authentication.sql | 4 +- tools/scripts/make_user_admin.sh | 6 +++ .../scripts/setup_db_sql.sh | 2 + 4 files changed, 34 insertions(+), 28 deletions(-) create mode 100755 tools/scripts/make_user_admin.sh rename setup_db_sql.sh => tools/scripts/setup_db_sql.sh (97%) diff --git a/README.md b/README.md index d2614300..8dca15c7 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ git login git.holarse.de Jetzt noch die Datenbank initial befüllen mit dem Script ```bash -./setup_db_sql.sh +./tools/scripts/setup_db_sql.sh ``` und die Containerbande starten mit @@ -42,14 +42,27 @@ und die Containerbande starten mit docker-compose -f doc/docker-compose.yml up ``` +### Kompilieren +Die installierbare WAR-Datei erhält man durch das Bauen mit + + mvn clean package + +im Hauptverzeichnis, wo sich auch die ```pom.xml``` befindet. Beim ersten Durchlaufen werden die gesamten Abhängigkeiten von +Maven aufgelöst und heruntergeladen. + +Ist Tomcat so konfiguriert, dass das ROOT-Verzeichnis auf das Target-Verzeichnis zeigt, dann sollte die Webseite bereits unter http://localhost:8080 angezeigt werden. Sonst kann man die Datei ```/target/holarseweb.war``` über +die Tomcat-Manager-Konsole installieren. + ### Apache Artemis Message-Queue Die Message-Queue ist unter http://localhost:8161 erreichbar. ### Datenbank Die Datenbank ist unter http://localhost:5432 erreichbar. -### Webseite +### Mails +Der Mailcatcher ist unter http://localhost:8025 erreichbar. +### Webseite Die Webseite ist unter http://localhost:8080/holarseweb/ erreichbar. #### Manuelles Deployment @@ -69,31 +82,14 @@ Dann kann die Datenbank und der Benutzer manuell auf dem Datenbank-Server via angelegt werden. -Dann folgt das Schema-Script unter ```doc/db2/01_schema``` ebenfalls noch als postgres-Benutzer mit - - psql -h HOST -U postgres -d holarse -W -f 01_*.sql - -Dann die weiteren Dateien aufsteigend in den Nummern, bis es keine mehr gibt. - -Danach können einige Daten importiert werden. Diese sind unter ```doc/db2/02_data```. +Die Datenbankscripte können, wie oben schon genannt, über das Script ```tools/scripts/setup_db_sql.sh``` eingefügt werden. - -An dieser Stelle ist Holarse eingerichtet. Die Daten können nun importiert werden. Danach müssen die Daten noch bereinigt werden mit dem Script: - - psql -h HOST -U holarse -d holarse -W -f doc/db/04_after_article_import.sql - -Willkommen im HolaCMS 3-Testsystem! - -### Kompilieren -Die installierbare WAR-Datei erhält man durch das Bauen mit - - mvn clean package - -im Hauptverzeichnis, wo sich auch die ```pom.xml``` befindet. Beim ersten Durchlaufen werden die gesamten Abhängigkeiten von -Maven aufgelöst und heruntergeladen. +### Login +Zuerst einen Benutzer über die Oberfläche registrieren und diesen dann per SQL zum Admin erheben: -Ist Tomcat so konfiguriert, dass das ROOT-Verzeichnis auf das Target-Verzeichnis zeigt, dann sollte die Webseite bereits unter http://localhost:8080 angezeigt werden. Sonst kann man die Datei ```/target/holarseweb.war``` über -die Tomcat-Manager-Konsole installieren. +```bash +tools/scripts/make_user_admin.sh DEINBENUTZERNAME +``` -### Login -Zuerst einen Benutzer anlegen und diesen dann per SQL zum Admin erheben, indem in die Tabelle ```users_roles``` ein Eintrag mit beiden Foreign-Keys angelegt wird. +# Ende +Willkommen im HolaCMS 3-Testsystem! \ No newline at end of file diff --git a/doc/db2/01_schema/02a_authentication.sql b/doc/db2/01_schema/02a_authentication.sql index dc6aee5e..a7a9b83c 100644 --- a/doc/db2/01_schema/02a_authentication.sql +++ b/doc/db2/01_schema/02a_authentication.sql @@ -59,7 +59,9 @@ create table users ( create table user_roles ( user_id integer not null references users(id), - role_id integer not null references roles(id) + role_id integer not null references roles(id), + + unique(user_id, role_id) ); create index idx_user_verification_hash on user_status (verification_hash, locked, verified); diff --git a/tools/scripts/make_user_admin.sh b/tools/scripts/make_user_admin.sh new file mode 100755 index 00000000..88d0d542 --- /dev/null +++ b/tools/scripts/make_user_admin.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +PG_PASSWORD=geheim +USER=$1 + +docker-compose -f doc/docker-compose.yml exec -T db psql -v ON_ERROR_STOP=1 -U holarse -d holarse -c "insert into user_roles(user_id, role_id) values ((select id from users where login = '$USER'), (select id from roles where code = 'ADMIN'));" diff --git a/setup_db_sql.sh b/tools/scripts/setup_db_sql.sh similarity index 97% rename from setup_db_sql.sh rename to tools/scripts/setup_db_sql.sh index 1b2b0110..a52f1338 100755 --- a/setup_db_sql.sh +++ b/tools/scripts/setup_db_sql.sh @@ -1,3 +1,5 @@ +#!/bin/bash + BASE_FILES=$(find doc/db2/01_schema/ -type f | sort) echo $BASE_FILES