ajout des permissions et création du flux automatiquement

This commit is contained in:
Valentin 2024-05-04 18:02:05 +02:00
parent be790488c6
commit b93a7c361c
2 changed files with 50 additions and 7 deletions

View File

@ -41,8 +41,8 @@ admin_role_uuid=$(echo $(mariadb -u directus -p${DB_DIRECTUS_PASSWORD} \
-e "SELECT id FROM directus.directus_roles WHERE name='Administrator'") | awk '{print $2}') -e "SELECT id FROM directus.directus_roles WHERE name='Administrator'") | awk '{print $2}')
website_role_uuid=$(echo $(mariadb -u directus -p${DB_DIRECTUS_PASSWORD} \ website_role_uuid=$(echo $(mariadb -u directus -p${DB_DIRECTUS_PASSWORD} \
-e "SELECT id FROM directus.directus_roles WHERE name='Website'") | awk '{print $2}') -e "SELECT id FROM directus.directus_roles WHERE name='Website'") | awk '{print $2}')
# user_role_uuid=$(echo $(mariadb -u directus -p${DB_DIRECTUS_PASSWORD} \ user_role_uuid=$(echo $(mariadb -u directus -p${DB_DIRECTUS_PASSWORD} \
# -e "SELECT id FROM directus.directus_roles WHERE name='User'") | awk '{print $2}') -e "SELECT id FROM directus.directus_roles WHERE name='User'") | awk '{print $2}')
website_password=$(head -c 16 /dev/urandom | od -An -tx1 | tr -d ' \n') website_password=$(head -c 16 /dev/urandom | od -An -tx1 | tr -d ' \n')
@ -52,8 +52,21 @@ npx directus users create --email \"${directus_admin_email}\" \
npx directus users create --email \"website@${DOMAIN_NAME}\" --password \"${website_password}\" --role \"${website_role_uuid}\"" www-data npx directus users create --email \"website@${DOMAIN_NAME}\" --password \"${website_password}\" --role \"${website_role_uuid}\"" www-data
WEBSITE_TOKEN=$(head -c 16 /dev/urandom | od -An -tx1 | tr -d ' \n') WEBSITE_TOKEN=$(head -c 16 /dev/urandom | od -An -tx1 | tr -d ' \n')
mariadb -u directus -p${DB_DIRECTUS_PASSWORD} -e "UPDATE directus.directus_roles SET icon='robot' WHERE name='Website'"; mariadb -u directus -p${DB_DIRECTUS_PASSWORD} -e \
mariadb -u directus -p${DB_DIRECTUS_PASSWORD} -e "UPDATE directus.directus_roles SET app_access='0' WHERE name='Website'"; "UPDATE directus.directus_roles SET icon='robot' WHERE name='Website'"
mariadb -u directus -p${DB_DIRECTUS_PASSWORD} -e "UPDATE directus.directus_users SET token=\"${WEBSITE_TOKEN}\" WHERE email=\"website@${DOMAIN_NAME}\""; mariadb -u directus -p${DB_DIRECTUS_PASSWORD} -e \
"UPDATE directus.directus_roles SET app_access='0' WHERE name='Website'"
mariadb -u directus -p${DB_DIRECTUS_PASSWORD} -e \
"UPDATE directus.directus_users SET token=\"${WEBSITE_TOKEN}\" WHERE email=\"website@${DOMAIN_NAME}\""
mariadb -u directus -p${DB_DIRECTUS_PASSWORD} directus -e "INSERT INTO directus_permissions (role, collection, action, permissions, validation, fields) VALUES (\"${website_role_uuid}\", 'directus_files', 'read', '{}', '{}', '*')"; mariadb -u directus -p${DB_DIRECTUS_PASSWORD} directus -e \
"INSERT INTO directus_permissions (role, collection, action, permissions, validation, fields) \
VALUES (\"${website_role_uuid}\", 'directus_files', 'read', '{}', '{}', '*')"
mariadb -u directus -p${DB_DIRECTUS_PASSWORD} directus -e \
"INSERT INTO directus_permissions (role, collection, action, permissions, validation, fields) \
VALUES (\"${user_role_uuid}\", 'directus_files', 'read', '{}', '{}', '*')"
mariadb -u directus -p${DB_DIRECTUS_PASSWORD} directus -e \
"INSERT INTO directus_permissions (role, collection, action, permissions, validation, fields) \
VALUES (\"${user_role_uuid}\", 'directus_folders', 'read', '{}', '{}', '*')"

View File

@ -8,6 +8,8 @@ echo -e "${BLUE}${BOLD}Authorization Header ${RESET}${ORANGE}Generate a safe str
echo -e "${PURPLE}${BOLD}Enter the Authorization Header${RESET}" echo -e "${PURPLE}${BOLD}Enter the Authorization Header${RESET}"
read -s auth_header read -s auth_header
# check if the build flow already exists and get the auth header from there if so
install_pkg php install_pkg php
install_pkg php-fpm install_pkg php-fpm
install_pkg jq install_pkg jq
@ -37,4 +39,32 @@ echo "file_server" >> $CADDYFILE
echo "}" >> $CADDYFILE echo "}" >> $CADDYFILE
echo "}" >> $CADDYFILE echo "}" >> $CADDYFILE
caddy fmt $CADDYFILE -w caddy fmt $CADDYFILE -w
caddy reload -c $CADDYFILE caddy reload -c $CADDYFILE
if [[ -z "$DB_DIRECTUS_PASSWORD" ]]; then
echo -e "${PURPLE}${BOLD}Enter the MariaDB Directus password : ${RESET}"
read -s DB_DIRECTUS_PASSWORD
echo
fi
FLOW_EXISTS=$(echo $(mariadb -u directus -p${DB_DIRECTUS_PASSWORD} directus -e "SELECT COUNT(*) FROM directus_flows WHERE name='build';") | awk '{print $2}')
website_role_uuid=$(echo $(mariadb -u directus -p${DB_DIRECTUS_PASSWORD} \
-e "SELECT id FROM directus.directus_roles WHERE name='Website'") | awk '{print $2}')
if [ $FLOW_EXISTS -eq 0 ]; then
flow_id="fdd75914-80dd-44ac-9d62-c7a08bc9cae6"
operation_id="371b1b41-312d-4df6-ab68-336b416e1f16"
mariadb -u directus -p${DB_DIRECTUS_PASSWORD} directus -e \
"INSERT INTO directus_flows (id, name, icon, color, description, status, \`trigger\`, accountability, options, operation, user_created) \
VALUES (${flow_id}, 'Build', 'bolt', '#FFA439', 'Trigger static site build on content modification', 'active', 'event', 'all', \
'{\"type\":\"action\",\"scope\":[\"items.create\",\"items.update\",\"items.sort\",\"items.delete\",\"items.promote\"],\"collections\":[\"directus_files\"]}', \
${operation_id}, ${website_role_uuid})"
mariadb -u directus -p${DB_DIRECTUS_PASSWORD} directus -e \
"INSERT INTO directus_operations (id, name, \`key\`, type, position_x, position_y, options, flow, user_created) \
VALUES (${operation_id}, 'Webhook / Request URL', 'request_56aby', 'request', 23, 2, \
'{\"headers\":[{\"header\":\"Authorization\",\"value\":\"${auth_header}\"},{\"header\":\"Content-Type\",\"value\":\"application/json\"}],\"method\":\"POST\",\"url\":\"https://${DOMAIN_NAME}/webhook.php\",\"body\":null}', \
${flow_id}, ${website_role_uuid})"
fi