mailcowauth.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. ini_set('error_reporting', 0);
  18. // Init database
  19. //$dsn = $database_type . ':host=' . $database_host . ';dbname=' . $database_name;
  20. $dsn = $database_type . ":unix_socket=" . $database_sock . ";dbname=" . $database_name;
  21. $opt = [
  22. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  23. PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
  24. PDO::ATTR_EMULATE_PREPARES => false,
  25. ];
  26. try {
  27. $pdo = new PDO($dsn, $database_user, $database_pass, $opt);
  28. }
  29. catch (PDOException $e) {
  30. $return = array("success" => false, "role" => '');
  31. echo json_encode($return);
  32. exit;
  33. }
  34. // Load core functions first
  35. require_once 'functions.inc.php';
  36. require_once 'functions.auth.inc.php';
  37. require_once 'sessions.inc.php';
  38. // Init provider
  39. $iam_provider = identity_provider('init');
  40. $result = check_login($post['username'], $post['password'], $post['protocol'], true);
  41. if ($result) {
  42. $return = array("success" => true, "role" => $result);
  43. } else {
  44. $return = array("success" => false, "role" => '');
  45. }
  46. echo json_encode($return);
  47. exit;