MAIN.class.php 5.1 KB

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