chg: [internal] Delete system setting when value is empty

pull/7935/head
Jakub Onderka 2021-11-06 22:12:48 +01:00
parent 0198c7b0db
commit e844f35847
2 changed files with 9 additions and 0 deletions

View File

@ -254,6 +254,8 @@ class AuditLogBehavior extends ModelBehavior
}
$id = $modelName === 'AttributeTag' ? $model->data[$model->alias]['attribute_id'] : $model->data[$model->alias]['event_id'];
$modelName = $modelName === 'AttributeTag' ? 'Attribute' : 'Event';
} else if ($modelName === 'SystemSetting') {
$id = 0;
}
$this->auditLog()->insert(['AuditLog' => [

View File

@ -112,6 +112,13 @@ class SystemSetting extends AppModel
return false; // blocked setting
}
if ($value === '' || $value === null) {
if ($this->hasAny(['SystemSetting.setting' => $setting])) {
return $this->delete($setting); // delete the whole setting when value is empty
}
return true;
}
$value = JsonTool::encode($value);
// If encryption is enabled and setting name contains `password` or `apikey` string, encrypt value to protect it