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;
 }
예제 #3
0
 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;
 }