directus policies sql
This commit is contained in:
parent
c9b86d7401
commit
5436760bf6
|
|
@ -0,0 +1,144 @@
|
||||||
|
/*M!999999\- enable the sandbox mode */
|
||||||
|
-- MariaDB dump 10.19 Distrib 10.11.10-MariaDB, for debian-linux-gnu (x86_64)
|
||||||
|
--
|
||||||
|
-- Host: localhost Database: directus
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 10.11.10-MariaDB-ubu2204
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!40101 SET NAMES utf8mb4 */;
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `directus_roles`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `directus_roles`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `directus_roles` (
|
||||||
|
`id` char(36) NOT NULL,
|
||||||
|
`name` varchar(100) NOT NULL,
|
||||||
|
`icon` varchar(64) NOT NULL DEFAULT 'supervised_user_circle',
|
||||||
|
`description` text DEFAULT NULL,
|
||||||
|
`parent` char(36) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `directus_roles_parent_foreign` (`parent`),
|
||||||
|
CONSTRAINT `directus_roles_parent_foreign` FOREIGN KEY (`parent`) REFERENCES `directus_roles` (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `directus_roles`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `directus_roles` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `directus_roles` DISABLE KEYS */;
|
||||||
|
INSERT INTO `directus_roles` VALUES
|
||||||
|
('e55003a8-7a11-43d3-b9c0-13f3170b06da','Administrator','verified','$t:admin_description',NULL),
|
||||||
|
('f512d0e1-7349-418a-a18f-7a7572441f99','Website','robot','Gives access to the content to the front.',NULL),
|
||||||
|
('f66390d0-24a6-4dcc-8ed6-ca8857b4266c','User','supervised_user_circle','Is able to edit content.',NULL);
|
||||||
|
/*!40000 ALTER TABLE `directus_roles` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `directus_permissions`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `directus_permissions`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `directus_permissions` (
|
||||||
|
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`collection` varchar(64) NOT NULL,
|
||||||
|
`action` varchar(10) NOT NULL,
|
||||||
|
`permissions` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`permissions`)),
|
||||||
|
`validation` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`validation`)),
|
||||||
|
`presets` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`presets`)),
|
||||||
|
`fields` text DEFAULT NULL,
|
||||||
|
`policy` char(36) NOT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `directus_permissions_collection_foreign` (`collection`),
|
||||||
|
KEY `directus_permissions_policy_foreign` (`policy`),
|
||||||
|
CONSTRAINT `directus_permissions_policy_foreign` FOREIGN KEY (`policy`) REFERENCES `directus_policies` (`id`) ON DELETE CASCADE
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `directus_permissions`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `directus_permissions` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `directus_permissions` DISABLE KEYS */;
|
||||||
|
INSERT INTO `directus_permissions` VALUES
|
||||||
|
(1,'directus_files','read',NULL,NULL,NULL,'*','a2e48172-ac4e-4848-9c59-4158826e4f63'),
|
||||||
|
(2,'directus_comments','read','{}',NULL,NULL,'*','7d8b3285-54a4-4946-a3ea-121eda2536ee'),
|
||||||
|
(3,'directus_files','create','{}',NULL,NULL,'*','7d8b3285-54a4-4946-a3ea-121eda2536ee'),
|
||||||
|
(4,'directus_files','read','{}',NULL,NULL,'*','7d8b3285-54a4-4946-a3ea-121eda2536ee'),
|
||||||
|
(5,'directus_files','update','{}',NULL,NULL,'*','7d8b3285-54a4-4946-a3ea-121eda2536ee'),
|
||||||
|
(6,'directus_files','delete','{}',NULL,NULL,'*','7d8b3285-54a4-4946-a3ea-121eda2536ee'),
|
||||||
|
(15,'directus_folders','create','{}',NULL,NULL,'*','7d8b3285-54a4-4946-a3ea-121eda2536ee'),
|
||||||
|
(16,'directus_folders','read','{}',NULL,NULL,'*','7d8b3285-54a4-4946-a3ea-121eda2536ee'),
|
||||||
|
(17,'directus_folders','update','{}',NULL,NULL,'*','7d8b3285-54a4-4946-a3ea-121eda2536ee'),
|
||||||
|
(18,'directus_folders','delete','{}',NULL,NULL,NULL,'7d8b3285-54a4-4946-a3ea-121eda2536ee'),
|
||||||
|
(19,'directus_users','read','{}',NULL,NULL,'*','7d8b3285-54a4-4946-a3ea-121eda2536ee'),
|
||||||
|
(20,'directus_users','update','{\"id\":{\"_eq\":\"$CURRENT_USER\"}}',NULL,NULL,'first_name,last_name,email,password,location,title,description,avatar,language,appearance,theme_light,theme_dark,theme_light_overrides,theme_dark_overrides,tfa_secret','7d8b3285-54a4-4946-a3ea-121eda2536ee'),
|
||||||
|
(21,'directus_roles','read','{}',NULL,NULL,'*','7d8b3285-54a4-4946-a3ea-121eda2536ee'),
|
||||||
|
(22,'directus_shares','read','{\"_or\":[{\"role\":{\"_eq\":\"$CURRENT_ROLE\"}},{\"role\":{\"_null\":true}}]}',NULL,NULL,'*','7d8b3285-54a4-4946-a3ea-121eda2536ee'),
|
||||||
|
(23,'directus_shares','create','{}',NULL,NULL,'*','7d8b3285-54a4-4946-a3ea-121eda2536ee'),
|
||||||
|
(24,'directus_shares','update','{\"user_created\":{\"_eq\":\"$CURRENT_USER\"}}',NULL,NULL,'*','7d8b3285-54a4-4946-a3ea-121eda2536ee'),
|
||||||
|
(25,'directus_shares','delete','{\"user_created\":{\"_eq\":\"$CURRENT_USER\"}}',NULL,NULL,'*','7d8b3285-54a4-4946-a3ea-121eda2536ee');
|
||||||
|
/*!40000 ALTER TABLE `directus_permissions` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Table structure for table `directus_policies`
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `directus_policies`;
|
||||||
|
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||||
|
/*!40101 SET character_set_client = utf8 */;
|
||||||
|
CREATE TABLE `directus_policies` (
|
||||||
|
`id` char(36) NOT NULL,
|
||||||
|
`name` varchar(100) NOT NULL,
|
||||||
|
`icon` varchar(64) NOT NULL DEFAULT 'badge',
|
||||||
|
`description` text DEFAULT NULL,
|
||||||
|
`ip_access` text DEFAULT NULL,
|
||||||
|
`enforce_tfa` tinyint(1) NOT NULL DEFAULT 0,
|
||||||
|
`admin_access` tinyint(1) NOT NULL DEFAULT 0,
|
||||||
|
`app_access` tinyint(1) NOT NULL DEFAULT 0,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||||
|
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Dumping data for table `directus_policies`
|
||||||
|
--
|
||||||
|
|
||||||
|
LOCK TABLES `directus_policies` WRITE;
|
||||||
|
/*!40000 ALTER TABLE `directus_policies` DISABLE KEYS */;
|
||||||
|
INSERT INTO `directus_policies` VALUES
|
||||||
|
('7d8b3285-54a4-4946-a3ea-121eda2536ee','ModifyContent','supervised_user_circle','Can edit content',NULL,0,0,1),
|
||||||
|
('a2e48172-ac4e-4848-9c59-4158826e4f63','SeeContent','robot','Give access to the content to the front-end.',NULL,0,0,0),
|
||||||
|
('abf8a154-5b1c-4a46-ac9c-7300570f4f17','$t:public_label','public','$t:public_description',NULL,0,0,0),
|
||||||
|
('ecc207a9-c225-4772-8245-d102f1868e38','Administrator','verified','$t:admin_description',NULL,0,1,1);
|
||||||
|
/*!40000 ALTER TABLE `directus_policies` ENABLE KEYS */;
|
||||||
|
UNLOCK TABLES;
|
||||||
|
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
||||||
|
|
||||||
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||||
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
||||||
|
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
||||||
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||||
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||||
|
|
||||||
|
-- Dump completed on 2024-11-28 21:23:19
|
||||||
|
|
@ -5,6 +5,7 @@ check_global_const DOMAIN_NAME USERNAME CADDYFILE IP SSH_PORT
|
||||||
mkdir "/home/${USERNAME}/cms.${DOMAIN_NAME}"
|
mkdir "/home/${USERNAME}/cms.${DOMAIN_NAME}"
|
||||||
cp assets/directus.docker-compose.yml "/home/${USERNAME}/cms.${DOMAIN_NAME}/docker-compose.yml"
|
cp assets/directus.docker-compose.yml "/home/${USERNAME}/cms.${DOMAIN_NAME}/docker-compose.yml"
|
||||||
cp assets/setup_mariadb.sql "/home/${USERNAME}/cms.${DOMAIN_NAME}/setup_mariadb.sql"
|
cp assets/setup_mariadb.sql "/home/${USERNAME}/cms.${DOMAIN_NAME}/setup_mariadb.sql"
|
||||||
|
cp assets/directus_policies.sql "/home/${USERNAME}/cms.${DOMAIN_NAME}/directus_policies.sql"
|
||||||
cp assets/.env.example "/home/${USERNAME}/cms.${DOMAIN_NAME}/.env"
|
cp assets/.env.example "/home/${USERNAME}/cms.${DOMAIN_NAME}/.env"
|
||||||
|
|
||||||
sed -i "s/^PROJECT_NAME=.*/PROJECT_NAME=${DOMAIN_NAME}/" "/home/${USERNAME}/cms.${DOMAIN_NAME}/.env"
|
sed -i "s/^PROJECT_NAME=.*/PROJECT_NAME=${DOMAIN_NAME}/" "/home/${USERNAME}/cms.${DOMAIN_NAME}/.env"
|
||||||
|
|
@ -31,7 +32,10 @@ sed -i "s/^PORT=.*/PORT=${port}/" "/home/${USERNAME}/cms.${DOMAIN_NAME}/.env"
|
||||||
# Start the services using Docker Compose
|
# Start the services using Docker Compose
|
||||||
docker compose -f "/home/${USERNAME}/cms.${DOMAIN_NAME}/docker-compose.yml" up -d
|
docker compose -f "/home/${USERNAME}/cms.${DOMAIN_NAME}/docker-compose.yml" up -d
|
||||||
|
|
||||||
docker exec -i "${DOMAIN_NAME}_Directus" sh -c "npx directus roles create --role Website && npx directus roles create --role User"
|
docker cp "/home/${USERNAME}/cms.${DOMAIN_NAME}/directus_policies.sql" "${DOMAIN_NAME}_Directus_DB:/directus_policies.sql"
|
||||||
|
docker exec -i "${DOMAIN_NAME}_Directus_DB" sh -c "mariadb -uroot directus < /directus_policies.sql"
|
||||||
|
|
||||||
|
# docker exec -i "${DOMAIN_NAME}_Directus" sh -c "npx directus roles create --role Website && npx directus roles create --role User"
|
||||||
|
|
||||||
website_role_uuid=$(echo $(docker exec -i "${DOMAIN_NAME}_Directus_DB" mariadb -uroot -e "SELECT id FROM directus.directus_roles WHERE name='Website'") | awk '{print $2}')
|
website_role_uuid=$(echo $(docker exec -i "${DOMAIN_NAME}_Directus_DB" mariadb -uroot -e "SELECT id FROM directus.directus_roles WHERE name='Website'") | awk '{print $2}')
|
||||||
user_role_uuid=$(echo $(docker exec -i "${DOMAIN_NAME}_Directus_DB" mariadb -uroot -e "SELECT id FROM directus.directus_roles WHERE name='User'") | awk '{print $2}')
|
user_role_uuid=$(echo $(docker exec -i "${DOMAIN_NAME}_Directus_DB" mariadb -uroot -e "SELECT id FROM directus.directus_roles WHERE name='User'") | awk '{print $2}')
|
||||||
|
|
@ -44,7 +48,6 @@ WEBSITE_TOKEN=$(head -c 16 /dev/urandom | od -An -tx1 | tr -d ' \n')
|
||||||
|
|
||||||
docker exec -i "${DOMAIN_NAME}_Directus_DB" sh -c "
|
docker exec -i "${DOMAIN_NAME}_Directus_DB" sh -c "
|
||||||
mariadb -uroot -e \"
|
mariadb -uroot -e \"
|
||||||
UPDATE directus.directus_roles SET icon='robot' WHERE name='Website';
|
|
||||||
UPDATE directus.directus_users SET token='${WEBSITE_TOKEN}' WHERE email='website@${DOMAIN_NAME}';
|
UPDATE directus.directus_users SET token='${WEBSITE_TOKEN}' WHERE email='website@${DOMAIN_NAME}';
|
||||||
\" directus
|
\" directus
|
||||||
"
|
"
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ SSH_PORT=
|
||||||
CADDYFILE=""
|
CADDYFILE=""
|
||||||
DOMAIN_NAME=""
|
DOMAIN_NAME=""
|
||||||
IP=""
|
IP=""
|
||||||
|
WEBSITE_TOKEN=""
|
||||||
|
|
||||||
check_global_const() {
|
check_global_const() {
|
||||||
for var_name in "$@"; do
|
for var_name in "$@"; do
|
||||||
|
|
@ -34,6 +35,9 @@ check_global_const() {
|
||||||
IP)
|
IP)
|
||||||
eval "$var_name=$(hostname -I | cut -d' ' -f1)"
|
eval "$var_name=$(hostname -I | cut -d' ' -f1)"
|
||||||
;;
|
;;
|
||||||
|
WEBSITE_TOKEN)
|
||||||
|
eval "$var_name=$(docker exec -i ${DOMAIN_NAME}_Directus_DB mariadb -uroot -e "SELECT token FROM directus.directus_users WHERE email='website@${DOMAIN_NAME}';" -N)"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unknown variable: $var_name" >&2
|
echo "Unknown variable: $var_name" >&2
|
||||||
;;
|
;;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue