Files
Sentri/pub/api/v1/mailsettings/index.php
2026-01-01 10:54:18 +01:00

43 lines
1.5 KiB
PHP

<?php
use api\classes\API_mailsettings;
session_start();
require_once $_SERVER['DOCUMENT_ROOT'] . '/api/classes/API_mailsettings.php';
$API_mailsettings = new API_mailsettings();
if ($API_mailsettings->request_method === 'PUT') {
# Edit the mailsettings of the platform
$API_mailsettings->checkPermissions('admin-mailsettings', 'RW');
$requiredFields = [
'portal_uuid' => ['type' => 'uuid'],
'mail_from_name' => ['type' => 'string'],
'mail_from_address' => ['type' => 'email'],
'mail_smtp_host' => ['type' => 'string'],
'mail_smtp_secure' => ['type' => 'enum', 'values' => ['tls', 'ssl', 'no']],
'mail_smtp_port' => ['type' => 'int', 'min' => 4, 'max' => 65535],
'mail_smtp_auth' => ['type' => 'boolean'],
'mail_smtp_user' => ['type' => 'email'],
'mail_smtp_pass' => ['type' => 'string']
];
# check if the password is changed
$updatePassword = str_contains($API_mailsettings->postedData['mail_smtp_pass'], '******') ? false : true;
if ($updatePassword) {
if (strlen($API_mailsettings->postedData['mail_smtp_pass']) < 12) {
$API_mailsettings->apiOutput(400, ['error' => 'Password too short']);
}
if (preg_match('/^(.)\1{5,}$/', $API_mailsettings->postedData['mail_smtp_pass'])) {
$API_mailsettings->apiOutput(400, ['error' => 'Password insecure']);
}
}
$API_mailsettings->validateData($requiredFields);
# Update the permission
$API_mailsettings->updateMailSettings($updatePassword);
}