Compare commits
1 Commits
657f024f70
...
b901c01beb
| Author | SHA1 | Date | |
|---|---|---|---|
| b901c01beb |
@@ -174,11 +174,30 @@ create_domains() {
|
|||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Build API payload with required structure
|
||||||
|
local payload
|
||||||
|
payload=$(echo "$domain" | jq '{
|
||||||
|
type: "domain",
|
||||||
|
quota: (.quota // 0),
|
||||||
|
name: .name,
|
||||||
|
description: (.description // ""),
|
||||||
|
secrets: [],
|
||||||
|
emails: [],
|
||||||
|
urls: [],
|
||||||
|
memberOf: [],
|
||||||
|
roles: [],
|
||||||
|
lists: [],
|
||||||
|
members: [],
|
||||||
|
enabledPermissions: [],
|
||||||
|
disabledPermissions: [],
|
||||||
|
externalMembers: []
|
||||||
|
}' 2>/dev/null)
|
||||||
|
|
||||||
# Create domain via API
|
# Create domain via API
|
||||||
if curl -sf -X POST "${API_URL}/domain" \
|
if curl -sf -X POST "${API_URL}/principal" \
|
||||||
-u "admin:${password}" \
|
-u "admin:${password}" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d "$domain" >/dev/null 2>&1; then
|
-d "$payload" >/dev/null 2>&1; then
|
||||||
log_success "✓ Created domain: $domain_name"
|
log_success "✓ Created domain: $domain_name"
|
||||||
created=$((created + 1))
|
created=$((created + 1))
|
||||||
else
|
else
|
||||||
@@ -234,17 +253,61 @@ create_users() {
|
|||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Build API payload (name, password, description, quota)
|
# Hash the password if provided
|
||||||
|
local hashed_password=""
|
||||||
|
local raw_password
|
||||||
|
raw_password=$(echo "$user" | jq -r '.password // empty' 2>/dev/null)
|
||||||
|
|
||||||
|
if [ -n "$raw_password" ]; then
|
||||||
|
if command -v mkpasswd >/dev/null 2>&1; then
|
||||||
|
hashed_password=$(mkpasswd -m sha-512 "$raw_password")
|
||||||
|
elif command -v openssl >/dev/null 2>&1; then
|
||||||
|
hashed_password=$(openssl passwd -6 "$raw_password")
|
||||||
|
else
|
||||||
|
log_warning "Cannot hash password for $email - no mkpasswd or openssl found"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build API payload with required structure
|
||||||
local payload
|
local payload
|
||||||
payload=$(echo "$user" | jq '{
|
if [ -n "$hashed_password" ]; then
|
||||||
name: .email,
|
payload=$(echo "$user" | jq --arg email "$email" --arg pwd "$hashed_password" '{
|
||||||
password: .password,
|
type: "individual",
|
||||||
description: (.name // .email),
|
quota: (.quota // 0),
|
||||||
quota: (.quota // 1073741824)
|
name: $email,
|
||||||
}' 2>/dev/null)
|
description: (.name // ""),
|
||||||
|
secrets: [$pwd],
|
||||||
|
emails: [$email],
|
||||||
|
urls: [],
|
||||||
|
memberOf: [],
|
||||||
|
roles: [],
|
||||||
|
lists: [],
|
||||||
|
members: [],
|
||||||
|
enabledPermissions: [],
|
||||||
|
disabledPermissions: [],
|
||||||
|
externalMembers: []
|
||||||
|
}' 2>/dev/null)
|
||||||
|
else
|
||||||
|
payload=$(echo "$user" | jq --arg email "$email" '{
|
||||||
|
type: "individual",
|
||||||
|
quota: (.quota // 0),
|
||||||
|
name: $email,
|
||||||
|
description: (.name // ""),
|
||||||
|
secrets: [],
|
||||||
|
emails: [$email],
|
||||||
|
urls: [],
|
||||||
|
memberOf: [],
|
||||||
|
roles: [],
|
||||||
|
lists: [],
|
||||||
|
members: [],
|
||||||
|
enabledPermissions: [],
|
||||||
|
disabledPermissions: [],
|
||||||
|
externalMembers: []
|
||||||
|
}' 2>/dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
# Create user via API
|
# Create user via API
|
||||||
if curl -sf -X POST "${API_URL}/account" \
|
if curl -sf -X POST "${API_URL}/principal" \
|
||||||
-u "admin:${password}" \
|
-u "admin:${password}" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d "$payload" >/dev/null 2>&1; then
|
-d "$payload" >/dev/null 2>&1; then
|
||||||
|
|||||||
Reference in New Issue
Block a user