ajaxsetclientconfig.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. class myMisc extends misc
  3. {
  4. /**
  5. * Ajax set client config to client package.
  6. *
  7. * @param string $os
  8. * @access public
  9. * @return void
  10. */
  11. public function ajaxSetClientConfig($os = '')
  12. {
  13. $response['result'] = 'success';
  14. $account = $this->app->user->account;
  15. $clientDir = $this->app->wwwRoot . 'data/client/' . "$account/";
  16. if(!is_dir($clientDir)) mkdir($clientDir, 0755, true);
  17. /* write login info into config file. */
  18. $loginInfo = new stdclass();
  19. $loginInfo->ui = array();
  20. $loginInfo->ui['defaultUser']['server'] = ($this->config->xuanxuan->https ? 'https://' : 'http://') . $_SERVER['SERVER_NAME'] . ':' . $this->config->xuanxuan->commonPort;
  21. $loginInfo->ui['defaultUser']['account'] = $this->app->user->account;
  22. $loginInfo->ui['defaultUser']['lock'] = false;
  23. $loginInfo->ui['defaultUser']['ldap'] = false;
  24. $loginInfo->ui['login.ldap'] = true;
  25. $ldapPath = $this->app->getModulePath('', 'ldap');
  26. if(is_dir($ldapPath))
  27. {
  28. $ldapTurnon = $this->dao->select('*')->from(TABLE_CONFIG)->where('owner')->eq('system')->andWhere('module')->eq('ldap')->andWhere('`key`')->eq('turnon')->fetch('value');
  29. $loginInfo->ui['defaultUser']['ldap'] = !empty($ldapTurnon);
  30. }
  31. $loginInfo = json_encode($loginInfo);
  32. $loginFile = $clientDir . 'config.json';
  33. file_put_contents($loginFile, $loginInfo);
  34. define('PCLZIP_TEMPORARY_DIR', $clientDir);
  35. $this->app->loadClass('pclzip', true);
  36. $clientFile = $clientDir . 'zentaoclient.zip';
  37. $archive = new pclzip($clientFile);
  38. if($os == 'mac')
  39. {
  40. $result = $archive->add($loginFile, PCLZIP_OPT_REMOVE_ALL_PATH, PCLZIP_OPT_ADD_PATH, 'zentaoclient/xuanxuan.app/Contents/Resouces');
  41. }
  42. else
  43. {
  44. $result = $archive->add($loginFile, PCLZIP_OPT_REMOVE_ALL_PATH, PCLZIP_OPT_ADD_PATH, 'zentaoclient/resources/build-in');
  45. }
  46. if($result == 0)
  47. {
  48. $response['result'] = 'fail';
  49. $response['message'] = $archive->errorInfo(true);
  50. $this->send($response);
  51. }
  52. $this->send($response);
  53. }
  54. }