mailcowauth.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. header('Content-Type: application/json');
  3. $post = trim(file_get_contents('php://input'));
  4. if ($post) {
  5. $post = json_decode($post, true);
  6. }
  7. $return = array("success" => false, "role" => false);
  8. if(!isset($post['username']) || !isset($post['password'])){
  9. echo json_encode($return);
  10. exit();
  11. }
  12. require_once('../../../web/inc/vars.inc.php');
  13. if (file_exists('../../../web/inc/vars.local.inc.php')) {
  14. include_once('../../../web/inc/vars.local.inc.php');
  15. }
  16. require_once '../../../web/inc/lib/vendor/autoload.php';
  17. // Do not show errors, we log to using error_log
  18. ini_set('error_reporting', 0);
  19. // Init database
  20. //$dsn = $database_type . ':host=' . $database_host . ';dbname=' . $database_name;
  21. $dsn = $database_type . ":unix_socket=" . $database_sock . ";dbname=" . $database_name;
  22. $opt = [
  23. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  24. PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
  25. PDO::ATTR_EMULATE_PREPARES => false,
  26. ];
  27. try {
  28. $pdo = new PDO($dsn, $database_user, $database_pass, $opt);
  29. }
  30. catch (PDOException $e) {
  31. error_log("MAILCOWAUTH: " . $e . PHP_EOL);
  32. http_response_code(501);
  33. exit;
  34. }
  35. // Load core functions first
  36. require_once 'functions.inc.php';
  37. require_once 'functions.auth.inc.php';
  38. require_once 'sessions.inc.php';
  39. // Init provider
  40. $iam_provider = identity_provider('init');
  41. $result = check_login($post['username'], $post['password'], $post['protocol'], true);
  42. if ($result) {
  43. $return = array("success" => true, "role" => $result);
  44. }
  45. echo json_encode($return);
  46. exit();