AdminSingleSignOn.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace ThurData\Servers\KerioEmail\App\Http\Actions;
  3. use ThurData\Servers\KerioEmail\App\Enums\ControllerEnums;
  4. use ThurData\Servers\KerioEmail\App\Helpers\BuildUrlExtended;
  5. use ThurData\Servers\KerioEmail\App\Helpers\KerioManager;
  6. use ThurData\Servers\KerioEmail\App\Libs\Product\ProductManager;
  7. use ThurData\Servers\KerioEmail\App\Traits\ExtensionsCheckerTrait;
  8. use ThurData\Servers\KerioEmail\Core\App\Controllers\Instances\AddonController;
  9. use ThurData\Servers\KerioEmail\Core\Helper;
  10. use ThurData\Servers\KerioEmail\Core\UI\Traits\WhmcsParams;
  11. /**
  12. *
  13. * Created by PhpStorm.
  14. * User: Tomasz Bielecki ( tomasz.bi@thurdata.com )
  15. * Date: 08.11.19
  16. * Time: 09:47
  17. * Class AdminSingleSignOn
  18. */
  19. class AdminSingleSignOn extends AddonController
  20. {
  21. use ExtensionsCheckerTrait;
  22. /**
  23. *
  24. *
  25. * @param null $params
  26. * @return array
  27. */
  28. public function execute($params = null)
  29. {
  30. try
  31. {
  32. /**
  33. *
  34. */
  35. $this->checkExtensionOrThrowError();
  36. /**
  37. * kerio API manager
  38. */
  39. $manager = (new KerioManager());
  40. $api = $manager->getApiByServer($params['serverid']);
  41. /**
  42. * API Connection
  43. */
  44. $connection = $api->soap->getConnection();
  45. /**
  46. * Build URL
  47. */
  48. $redirectTo = $connection->getServerUrl().'/service/preauth?'.http_build_query([
  49. 'authtoken' => $connection->getAuthToken()
  50. ]);
  51. /**
  52. *
  53. * return connection error
  54. */
  55. return [
  56. 'success' => true,
  57. 'redirectTo' => $redirectTo
  58. ];
  59. }
  60. catch (\Exception $ex)
  61. {
  62. /**
  63. * return some crit error
  64. */
  65. return ['error' => $ex->getMessage()];
  66. }
  67. }
  68. }