public function keyUpdateAction(Request $request) { $settings = $this->getSettingService()->get('storage', array()); if ($request->getMethod() == 'POST') { $options = $request->request->all(); if (!empty($settings['cloud_api_server'])) { $options['apiUrl'] = $settings['cloud_api_server']; } $api = new CloudAPI($options); $result = $api->post(sprintf('/keys/%s/verification', $options['accessKey'])); if (isset($result['error'])) { $this->setFlashMessage('danger', 'AccessKey / SecretKey 不正确!'); goto render; } $user = $api->get('/me'); if ($user['edition'] != 'opensource') { $this->setFlashMessage('danger', 'AccessKey / SecretKey 不正确!!'); goto render; } $settings['cloud_access_key'] = $options['accessKey']; $settings['cloud_secret_key'] = $options['secretKey']; $settings['cloud_key_applied'] = 1; $this->getSettingService()->set('storage', $settings); $this->setFlashMessage('success', '授权码保存成功!'); return $this->redirect($this->generateUrl('admin_setting_cloud_key')); } render: return $this->render('TopxiaAdminBundle:CloudSetting:key-update.html.twig', array()); }
public static function create() { $setting = ServiceKernel::instance()->createService('System.SettingService'); $storage = $setting->get('storage', array()); $developer = $setting->get('developer', array()); $api = new CloudAPI(array('accessKey' => empty($storage['cloud_access_key']) ? '' : $storage['cloud_access_key'], 'secretKey' => empty($storage['cloud_secret_key']) ? '' : $storage['cloud_secret_key'], 'apiUrl' => empty($storage['cloud_api_server']) ? '' : $storage['cloud_api_server'], 'debug' => empty($developer['debug']) ? false : true)); $logger = new Logger('CloudAPI'); $logger->pushHandler(new StreamHandler(ServiceKernel::instance()->getParameter('kernel.logs_dir') . '/cloud-api.log', Logger::DEBUG)); $api->setLogger($logger); return $api; }
public static function create($type = 'root') { $setting = ServiceKernel::instance()->createService('System.SettingService'); $storage = $setting->get('storage', array()); $developer = $setting->get('developer', array()); $logger = new Logger('CloudAPI'); $logger->pushHandler(new StreamHandler(ServiceKernel::instance()->getParameter('kernel.logs_dir') . '/cloud-api.log', Logger::DEBUG)); if ($type == 'tui') { $api = new CloudAPI(array('accessKey' => empty($storage['cloud_access_key']) ? '' : $storage['cloud_access_key'], 'secretKey' => empty($storage['cloud_secret_key']) ? '' : $storage['cloud_secret_key'], 'apiUrl' => empty($storage['cloud_api_tui_server']) ? 'http://estui.edusoho.net' : $storage['cloud_api_tui_server'], 'debug' => empty($developer['debug']) ? false : true)); $api->setLogger($logger); } else { $api = new FailoverCloudAPI(array('accessKey' => empty($storage['cloud_access_key']) ? '' : $storage['cloud_access_key'], 'secretKey' => empty($storage['cloud_secret_key']) ? '' : $storage['cloud_secret_key'], 'apiUrl' => empty($storage['cloud_api_server']) ? '' : $storage['cloud_api_server'], 'debug' => empty($developer['debug']) ? false : true)); $api->setLogger($logger); $serverConfigFile = ServiceKernel::instance()->getParameter('kernel.root_dir') . '/data/api_server.json'; $api->setApiServerConfigPath($serverConfigFile); $api->setApiType($type); } return $api; }