index.php 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <?php
  2. if (cfr('USERREG')) {
  3. $altCfg = $ubillingConfig->getAlter();
  4. $registerUserONU = $ubillingConfig->getAlterParam('ONUAUTO_USERREG');
  5. //check if exclusive database locking is enabled
  6. $dbLockEnabled = false;
  7. if (isset($altCfg['DB_LOCK_ENABLED'])) {
  8. if ($altCfg['DB_LOCK_ENABLED']) {
  9. $dbLockEnabled = true;
  10. }
  11. }
  12. $registerSteps = array(
  13. __('Step') . ' 1' => __('Select city'),
  14. __('Step') . ' 2' => __('Select street'),
  15. __('Step') . ' 3' => __('Select build'),
  16. __('Step') . ' 4' => __('Select service'),
  17. __('Success') => __('Confirm'),
  18. );
  19. //getting UnknonwsSelector for userreg
  20. if (ubRouting::checkGet(array('getunknownlist', 'oltid'))) {
  21. $Pon = new PONizer();
  22. die($Pon->getUnknownONUMACList(ubRouting::get('oltid', 'int'), true, true, ubRouting::get('selectorid'), ubRouting::get('selectorname')));
  23. }
  24. if (!ubRouting::checkPost('apt', false) and !ubRouting::checkPost('IP')) {
  25. show_window(__('User registration part 1 (location)'), web_UserRegFormLocation());
  26. } else {
  27. if (isset($_POST['apt'])) {
  28. $newUserData['city'] = ubRouting::post('citysel');
  29. $newUserData['street'] = ubRouting::post('streetsel');
  30. $newUserData['build'] = ubRouting::post('buildsel');
  31. $newUserData['entrance'] = ubRouting::post('entrance');
  32. $newUserData['floor'] = ubRouting::post('floor');
  33. $newUserData['apt'] = ubRouting::post('apt');
  34. $newUserData['service'] = ubRouting::post('serviceselect');
  35. //pack contrahent data
  36. if (isset($altCfg['LOGIN_GENERATION'])) {
  37. if ($altCfg['LOGIN_GENERATION'] == 'DEREBAN') {
  38. $newUserData['contrahent'] = ubRouting::post('regagent');
  39. }
  40. }
  41. //pack extended address info data
  42. if (isset($altCfg['ADDRESS_EXTENDED_ENABLED']) and $altCfg['ADDRESS_EXTENDED_ENABLED']) {
  43. $newUserData['postalcode'] = (ubRouting::checkPost('postalcode')) ? ubRouting::post('postalcode') : '';
  44. $newUserData['towndistr'] = (ubRouting::checkPost('towndistr')) ? ubRouting::post('towndistr') : '';
  45. $newUserData['addressexten'] = (ubRouting::checkPost('addressexten')) ? ubRouting::post('addressexten') : '';
  46. }
  47. } else {
  48. $newUserData = unserialize(base64_decode(ubRouting::post('repostdata')));
  49. }
  50. //create exclusive lock or wait until previous lock will be released
  51. //lock name "ipBind" is shared between userreg and pl_ipchange
  52. if ($dbLockEnabled) {
  53. $dbLockQuery = 'SELECT GET_LOCK("ipBind",1) AS result';
  54. $dbLock = false;
  55. while (!$dbLock) {
  56. $dbLockCheck = simple_query($dbLockQuery);
  57. $dbLock = $dbLockCheck['result'];
  58. }
  59. }
  60. show_window(__('User registration part 2 (Services)'), web_UserRegFormNetData($newUserData));
  61. zb_BillingStats(true);
  62. if (ubRouting::checkPost('IP')) {
  63. $newUserData['IP'] = ubRouting::post('IP');
  64. $newUserData['login'] = ubRouting::post('login');
  65. $newUserData['password'] = ubRouting::post('password');
  66. //ONU auto assign additional options
  67. if ($registerUserONU) {
  68. if (ubRouting::checkPost('nooltsfound')) {
  69. $newUserData['oltid'] = '';
  70. $newUserData['onumodelid'] = '';
  71. $newUserData['onuip'] = '';
  72. $newUserData['onumac'] = '';
  73. $newUserData['onuserial'] = '';
  74. } else {
  75. $newUserData['oltid'] = ubRouting::checkPost('oltid') ? ubRouting::post('oltid') : '';
  76. $newUserData['onumodelid'] = ubRouting::checkPost('onumodelid') ? ubRouting::post('onumodelid') : '';
  77. $newUserData['onuip'] = ubRouting::checkPost('onuipproposal') ? ubRouting::post('IP') : ubRouting::post('onuip');
  78. $newUserData['onumac'] = (ubRouting::checkPost('onumac')) ? ubRouting::post('onumac') : '';
  79. $newUserData['onuserial'] = (ubRouting::checkPost('onuserial')) ? ubRouting::post('onuserial') : '';
  80. }
  81. }
  82. if (isset($altCfg['USERREG_MAC_INPUT_ENABLED']) and $altCfg['USERREG_MAC_INPUT_ENABLED']) {
  83. $newMac = '';
  84. if (ubRouting::checkPost('userMAC')) {
  85. $newMac = ubRouting::post('userMAC');
  86. $newMac = trim($newMac);
  87. $newMac = strtolower($newMac);
  88. //check mac for free
  89. $allUsedMacs = zb_getAllUsedMac();
  90. if (!zb_checkMacFree($newMac, $allUsedMacs)) {
  91. $alert = wf_tag('script', false, '', 'type="text/javascript"');
  92. $alert .= 'alert("' . __('Error') . ': ' . __('This MAC is currently used') . '");';
  93. $alert .= wf_tag('script', true);
  94. print($alert);
  95. ubRouting::nav("?module=userreg");
  96. die();
  97. }
  98. //validate mac format
  99. if (!check_mac_format($newMac)) {
  100. $alert = wf_tag('script', false, '', 'type="text/javascript"');
  101. $alert .= 'alert("' . __('Error') . ': ' . __('This MAC have wrong format') . '");';
  102. $alert .= wf_tag('script', true);
  103. print($alert);
  104. ubRouting::nav("?module=userreg");
  105. die();
  106. }
  107. }
  108. $newUserData['userMAC'] = $newMac;
  109. }
  110. //registering user, hell yeah!
  111. zb_UserRegister($newUserData);
  112. //release db lock
  113. if ($dbLockEnabled) {
  114. $dbUnlockQuery = 'SELECT RELEASE_LOCK("ipBind")';
  115. nr_query($dbUnlockQuery);
  116. }
  117. }
  118. }
  119. if (ubRouting::checkGet('branchesback')) {
  120. show_window('', wf_BackLink('?module=branches&userlist=true'));
  121. }
  122. show_window('', wf_FormDisabler());
  123. } else {
  124. show_error(__('Access denied'));
  125. }