ClientMergeHelper.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace MGModule\DNSManager2\mgLibs\custom\helpers;
  3. /**
  4. * Description of ClientMergeHelper
  5. *
  6. * @author Mateusz Pawłowski <mateusz.pa@modulesgarden.com>
  7. */
  8. class ClientMergeHelper
  9. {
  10. public static function merge($fromUserID, $toUserID)
  11. {
  12. $zoneList = self::getZoneListAssignedToUser($fromUserID);
  13. if ($zoneList)
  14. {
  15. self::mergeZones($zoneList, $fromUserID, $toUserID);
  16. }
  17. }
  18. private static function getZoneListAssignedToUser($fromUserID)
  19. {
  20. return \MGModule\DNSManager2\models\custom\zone\Repository::factory()->byClientID($fromUserID)->get();
  21. }
  22. private static function mergeZones($zoneList, $fromUserID, $toUserID)
  23. {
  24. foreach ($zoneList as $zone)
  25. {
  26. try
  27. {
  28. $zone->clientid = $toUserID;
  29. $zone->save();
  30. \MGModule\DNSManager2\mgLibs\custom\manager\LogHelper::addSuccessLog('Migrate Zone', 'Migrate zone from client #' . $fromUserID . ' to #' . $toUserID, $zone->name);
  31. }
  32. catch (\Exception $ex)
  33. {
  34. \MGModule\DNSManager2\mgLibs\custom\manager\LogHelper::addFailLog('Migrate Zone', 'Migrate zone from client #' . $fromUserID . ' to #' . $toUserID, $zone->name);
  35. }
  36. }
  37. }
  38. }