49 lines
1.3 KiB
PHP
49 lines
1.3 KiB
PHP
<?php
|
|
|
|
class Controller_api_siteconfig extends Crunchbutton_Controller_RestAccount {
|
|
public function init() {
|
|
switch ($this->method()) {
|
|
case 'post':
|
|
if (is_array($this->request()['key']) && is_array($this->request()['value'])) {
|
|
foreach ($this->request()['key'] as $k => $key) {
|
|
$this->save( $key, $this->request()['value'][$k] );
|
|
}
|
|
|
|
} elseif ($this->request()['key'] && $this->request()['value']) {
|
|
$this->save( $this->request()['key'], $this->request()['value'] );
|
|
}
|
|
break;
|
|
|
|
case 'get':
|
|
echo json_encode(c::config()->site->exportConfig());
|
|
break;
|
|
}
|
|
}
|
|
|
|
private function save( $key, $value ){
|
|
|
|
$hasPermission = c::admin()->permission()->check( [ 'global' ] );
|
|
|
|
if( !$hasPermission ){
|
|
switch ( $key ) {
|
|
case 'support-phone-afterhours':
|
|
$hasPermission = c::admin()->permission()->check( [ 'global', 'support-all', 'support-settings' ] );
|
|
break;
|
|
case 'referral-inviter-credit-value':
|
|
case 'referral-invited-credit-value':
|
|
case 'referral-add-credit-to-invited':
|
|
case 'referral-limit-per-code':
|
|
case 'referral-is-enable':
|
|
case 'referral-invites-limit-per-code':
|
|
$hasPermission = c::admin()->permission()->check( [ 'global', 'invite-promo' ] );
|
|
break;
|
|
}
|
|
}
|
|
|
|
if( $hasPermission ){
|
|
c::config()->site->config($key)->set($value);
|
|
}
|
|
}
|
|
|
|
}
|