PARAMS.class.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. /**
  3. * PARAMS
  4. *
  5. * @author Naumov-Socolov <naumov.socolov@gmail.com>
  6. * @author Malishev Dima <dima.malishev@gmail.com>
  7. * @author vesta, http://vestacp.com/
  8. * @copyright vesta 2010-2011
  9. */
  10. class PARAMS extends AjaxHandler
  11. {
  12. /**
  13. * Get initial params
  14. *
  15. * @param Request $request
  16. * @return
  17. */
  18. public function getInitialExecute($request)
  19. {
  20. require_once V_ROOT_DIR . 'api/IP.class.php';
  21. require_once V_ROOT_DIR . 'api/USER.class.php';
  22. $ip_obj = new IP();
  23. $user_obj = new USER();
  24. $user_ips = json_decode($ip_obj->getListUserIpsExecute(), TRUE);
  25. foreach ($user_ips['data'] as $ip)
  26. {
  27. $ips[$ip['IP_ADDRESS']] = $ip['IP_ADDRESS'];
  28. }
  29. $users = json_decode($user_obj->getListExecute(), TRUE);
  30. $user_names = array_keys($users['data']['data']);
  31. $db_types = array(
  32. 'mysql' => 'mysql',
  33. 'postgress' => 'postgress'
  34. );
  35. $interfaces_arr = json_decode($ip_obj->getSysInterfacesExecute(), TRUE);
  36. $interfaces = $interfaces_arr['data'];
  37. $reply = array(
  38. 'WEB_DOMAIN' => array(
  39. 'TPL' => array('default' => 'default'),
  40. 'ALIAS' => array(),
  41. 'STAT' => array(
  42. 'webalizer' => 'webalizer',
  43. 'awstats' => 'awstats'),
  44. 'IP' => $ips
  45. ),
  46. 'CRON' => array(),
  47. 'IP' => array(
  48. 'SYS_USERS' => $user_names,
  49. 'STATUSES' => array(
  50. 'shared' => 'shared',
  51. 'exclusive' => 'exclusive'
  52. ),
  53. 'INTERFACES' => $interfaces,
  54. 'MASK' => array(
  55. '255.255.255.0' => '255.255.255.0',
  56. '255.255.255.128' => '255.255.255.128',
  57. '255.255.255.192' => '255.255.255.192',
  58. '255.255.255.224' => '255.255.255.224',
  59. '255.255.255.240' => '255.255.255.240',
  60. '255.255.255.248' => '255.255.255.248',
  61. '255.255.255.252' => '255.255.255.252',
  62. '255.255.255.255' => '255.255.255.255'
  63. ),
  64. 'OWNER' => array()
  65. ),
  66. 'DNS' => array(
  67. 'IP' => $ips,
  68. 'TPL' => array(
  69. 'default' => 'default'
  70. ),
  71. 'EXP' => array(),
  72. 'SOA' => array(),
  73. 'TTL' => array(),
  74. 'record' => array(
  75. 'RECORD' => array(),
  76. 'RECORD_TYPE' => array('a' => 'a', 'reverse' => 'reverse'),
  77. 'RECORD_VALUE' => array()
  78. )
  79. ),
  80. 'DB' => array(
  81. 'TYPE' => $db_types
  82. ),
  83. 'USERS' => array(
  84. 'ROLE' => array('user' => 'user'),
  85. 'OWNER' => $user_names,
  86. 'PACKAGE' => array('default' => 'default'),
  87. 'NS1' => array('' => ''),
  88. 'NS2' => array('' => ''),
  89. 'SHELL' => array(
  90. '/bin/sh' => '/bin/sh',
  91. '/bin/bash' => '/bin/bash',
  92. '/sbin/nologin' => '/sbin/nologin',
  93. '/bin/tcsh' => '/bin/tcsh',
  94. '/bin/csh' => '/bin/csh')
  95. )
  96. );
  97. return $this->reply(true, $reply);
  98. }
  99. }