{
use JSON;

my $dbn = $pydio{'DbName'} || 'pydio';
my $dbu = $pydio{'DbUser'} || 'pydio';
my $dbp = $pydio{'DbPassword'} || 'secret';
my $url = $pydio{'LogoutUrl'} || '';
my $createUser = $pydio{'ShareCreateUser'} || 'disabled';
$createUser = ($createUser eq 'enabled') ? JSON::true : JSON::false;

my $data;

if ((($pydio{'ManualConf'} || 'disabled') eq 'enabled') && open CONF, "/var/lib/pydio/plugins/conf.serial/boot.conf/bootstrap.json"){
    $data = <CONF>;
    close CONF;
    $data = from_json($data);
}

$data->{'core.conf'}->{'USERS_LIST_COMPLETE_MIN_CHARS'} ||= '3';
$data->{'core.conf'}->{'SKIP_USER_HISTORY'} ||= JSON::true;
$data->{'core.conf'}->{'USER_CREATE_REPOSITORY'} ||= JSON::false;
$data->{'core.conf'}->{'SAVE_GUEST_PREFERENCES'} ||= JSON::false;
$data->{'core.conf'}->{'USERS_LIST_HIDE_LOGIN'} ||= JSON::false;
$data->{'core.conf'}->{'USERS_LIST_COMPLETE_LIMIT'} ||= '20';
$data->{'core.conf'}->{'ALLOW_CROSSUSERS_SHARING'} ||= JSON::true;
$data->{'core.conf'}->{'USER_CREATE_USERS'} ||= $createUser;
$data->{'core.conf'}->{'DIBI_PRECONFIGURATION'}->{'mysql_username'} ||= $dbu;
$data->{'core.conf'}->{'DIBI_PRECONFIGURATION'}->{'mysql_password'} ||= $dbp;
$data->{'core.conf'}->{'DIBI_PRECONFIGURATION'}->{'mysql_driver'} ||= 'mysql';
$data->{'core.conf'}->{'DIBI_PRECONFIGURATION'}->{'group_switch_value'} ||= 'mysql';
$data->{'core.conf'}->{'DIBI_PRECONFIGURATION'}->{'mysql_database'} ||= $dbn;
$data->{'core.conf'}->{'DIBI_PRECONFIGURATION'}->{'mysql_host'} ||= 'localhost';

$data->{'core.auth'}->{'MASTER_INSTANCE_CONFIG'}->{'LOGOUT_URL'} ||= $url;
$data->{'core.auth'}->{'MASTER_INSTANCE_CONFIG'}->{'LOGIN_REDIRECT'} ||= '';
$data->{'core.auth'}->{'MASTER_INSTANCE_CONFIG'}->{'instance_name'} ||= 'auth.basic_http';
$data->{'core.auth'}->{'MASTER_INSTANCE_CONFIG'}->{'AJXP_ADMIN_LOGIN'} ||= '';
$data->{'core.auth'}->{'MASTER_INSTANCE_CONFIG'}->{'TRANSMIT_CLEAR_PASS'} ||= JSON::true;
$data->{'core.auth'}->{'MASTER_INSTANCE_CONFIG'}->{'AUTOCREATE_AJXPUSER'} ||= JSON::false;
$data->{'core.auth'}->{'MASTER_INSTANCE_CONFIG'}->{'group_switch_value'} ||= 'auth.basic_http';
$data->{'core.auth'}->{'MASTER_INSTANCE_CONFIG'}->{'USERS_FILEPATH'} ||= '/var/lib/pydio/plugins/auth.serial/users.ser';
$data->{'core.auth'}->{'MULTI_MODE'}->{'instance_name'} ||= 'MASTER_SLAVE';
$data->{'core.auth'}->{'MULTI_MODE'}->{'CACHE_MASTER_USERS_TO_SLAVE'} ||= JSON::false;
$data->{'core.auth'}->{'MULTI_MODE'}->{'group_switch_value'} ||= 'MASTER_SLAVE';
$data->{'core.auth'}->{'MULTI_USER_BASE_DRIVER'} ||= 'slave';
$data->{'core.auth'}->{'SLAVE_INSTANCE_CONFIG'}->{'instance_name'} ||= 'auth.serial';
$data->{'core.auth'}->{'SLAVE_INSTANCE_CONFIG'}->{'USERS_FILEPATH'} ||= '/var/lib/pydio/plugins/auth.serial/guests.ser';
$data->{'core.auth'}->{'SLAVE_INSTANCE_CONFIG'}->{'TRANSMIT_CLEAR_PASS'} ||= JSON::true;
$data->{'core.auth'}->{'SLAVE_INSTANCE_CONFIG'}->{'LOGIN_REDIRECT'} ||= '';
$data->{'core.auth'}->{'SLAVE_INSTANCE_CONFIG'}->{'FAST_CHECKS'} ||= JSON::false;
$data->{'core.auth'}->{'SLAVE_INSTANCE_CONFIG'}->{'AUTOCREATE_AJXPUSER'} ||= JSON::false;
$data->{'core.auth'}->{'SLAVE_INSTANCE_CONFIG'}->{'AJXP_ADMIN_LOGIN'} ||= '';
$data->{'core.auth'}->{'SLAVE_INSTANCE_CONFIG'}->{'group_switch_value'} ||= 'auth.serial';
$data->{'core.auth'}->{'SECURE_LOGIN_FORM'} ||= JSON::false;
$data->{'core.auth'}->{'SESSION_SET_CREDENTIALS'} ||= JSON::false;
$data->{'core.auth'}->{'MULTI_MODE'}->{'instance_name'} ||= 'MASTER_SLAVE';
$data->{'core.auth'}->{'MULTI_MODE'}->{'group_switch_value'} ||= 'MASTER_SLAVE';
$data->{'core.auth'}->{'CASE_SENSITIVE'} ||= JSON::true;
$data->{'core.auth'}->{'ENABLE_USERS'} ||= JSON::true;
$data->{'core.auth'}->{'ALLOW_GUEST_BROWSING'} ||= JSON::false;
$data->{'core.auth'}->{'PASSWORD_MINLENGTH'} ||= '4';

$OUT = to_json($data, {pretty => 1});
}
