feat: complete database schema with all 39 tables and foreign key relationships
This commit is contained in:
92
grant_permissions.sh
Executable file
92
grant_permissions.sh
Executable file
@@ -0,0 +1,92 @@
|
||||
#!/bin/bash
|
||||
# Grant admin permissions to all custom collections
|
||||
|
||||
API_URL="https://spark.jumpstartscaling.com"
|
||||
TOKEN="JtJMJV9I4MM9r4tUuDuaa2aoXbDlBrSM"
|
||||
|
||||
echo "🔐 Granting Admin Permissions to All Collections..."
|
||||
echo "=================================================="
|
||||
|
||||
# Get the admin policy ID
|
||||
ADMIN_POLICY_ID=$(curl -s "$API_URL/policies" \
|
||||
-H "Authorization: Bearer $TOKEN" | jq -r '.data[] | select(.admin_access == true) | .id')
|
||||
|
||||
echo "Admin Policy ID: $ADMIN_POLICY_ID"
|
||||
echo ""
|
||||
|
||||
# Get all custom collections (non-directus)
|
||||
COLLECTIONS=$(curl -s "$API_URL/collections" \
|
||||
-H "Authorization: Bearer $TOKEN" | \
|
||||
jq -r '.data[] | select(.collection | startswith("directus_") | not) | .collection')
|
||||
|
||||
# Grant full CRUD permissions for each collection
|
||||
for COLLECTION in $COLLECTIONS; do
|
||||
echo "📝 Granting permissions for: $COLLECTION"
|
||||
|
||||
# Create permission for this collection
|
||||
RESPONSE=$(curl -s -X POST "$API_URL/permissions" \
|
||||
-H "Authorization: Bearer $TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{
|
||||
\"policy\": \"$ADMIN_POLICY_ID\",
|
||||
\"collection\": \"$COLLECTION\",
|
||||
\"action\": \"create\",
|
||||
\"permissions\": {},
|
||||
\"fields\": [\"*\"]
|
||||
}")
|
||||
|
||||
# Check response
|
||||
if echo "$RESPONSE" | jq -e '.data' > /dev/null 2>&1; then
|
||||
echo " ✅ CREATE permission granted"
|
||||
else
|
||||
echo " ⚠️ $(echo "$RESPONSE" | jq -r '.errors[0].message // "Already exists or error"')"
|
||||
fi
|
||||
|
||||
# Read permission
|
||||
curl -s -X POST "$API_URL/permissions" \
|
||||
-H "Authorization: Bearer $TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{
|
||||
\"policy\": \"$ADMIN_POLICY_ID\",
|
||||
\"collection\": \"$COLLECTION\",
|
||||
\"action\": \"read\",
|
||||
\"permissions\": {},
|
||||
\"fields\": [\"*\"]
|
||||
}" > /dev/null
|
||||
echo " ✅ READ permission granted"
|
||||
|
||||
# Update permission
|
||||
curl -s -X POST "$API_URL/permissions" \
|
||||
-H "Authorization: Bearer $TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{
|
||||
\"policy\": \"$ADMIN_POLICY_ID\",
|
||||
\"collection\": \"$COLLECTION\",
|
||||
\"action\": \"update\",
|
||||
\"permissions\": {},
|
||||
\"fields\": [\"*\"]
|
||||
}" > /dev/null
|
||||
echo " ✅ UPDATE permission granted"
|
||||
|
||||
# Delete permission
|
||||
curl -s -X POST "$API_URL/permissions" \
|
||||
-H "Authorization: Bearer $TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{
|
||||
\"policy\": \"$ADMIN_POLICY_ID\",
|
||||
\"collection\": \"$COLLECTION\",
|
||||
\"action\": \"delete\",
|
||||
\"permissions\": {},
|
||||
\"fields\": [\"*\"]
|
||||
}" > /dev/null
|
||||
echo " ✅ DELETE permission granted"
|
||||
|
||||
echo ""
|
||||
done
|
||||
|
||||
echo "=================================================="
|
||||
echo "✅ All permissions granted!"
|
||||
echo ""
|
||||
echo "Testing access to 'sites' collection..."
|
||||
curl -s "$API_URL/items/sites" \
|
||||
-H "Authorization: Bearer $TOKEN" | jq '.data // .errors'
|
||||
Reference in New Issue
Block a user