sso-functions.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. function ssoCheck($username, $password, $token = null)
  3. {
  4. $test = '';
  5. if ($GLOBALS['ssoPlex'] && $token) {
  6. coookie('set', 'mpt', $token, $GLOBALS['rememberMeDays']);
  7. }
  8. if ($GLOBALS['ssoOmbi']) {
  9. $ombiToken = getOmbiToken($username, $password, $token);
  10. if ($ombiToken) {
  11. coookie('set', 'Auth', $ombiToken, $GLOBALS['rememberMeDays'], false);
  12. }
  13. }
  14. if ($GLOBALS['ssoTautulli']) {
  15. $tautulliToken = getTautulliToken($username, $password, $token);
  16. if ($tautulliToken) {
  17. foreach ($tautulliToken as $key => $value) {
  18. coookie('set', 'tautulli_token_' . $value['uuid'], $value['token'], $GLOBALS['rememberMeDays'], false);
  19. }
  20. }
  21. }
  22. return true;
  23. }
  24. function getOmbiToken($username, $password, $oAuthToken = null)
  25. {
  26. $token = null;
  27. try {
  28. $url = qualifyURL($GLOBALS['ombiURL']);
  29. $headers = array(
  30. "Accept" => "application/json",
  31. "Content-Type" => "application/json"
  32. );
  33. $data = array(
  34. "username" => $username,
  35. "password" => $password,
  36. "rememberMe" => "true"
  37. );
  38. $options = (localURL($url)) ? array('verify' => false) : array();
  39. $response = Requests::post($url . '/api/v1/Token', $headers, json_encode($data), $options);
  40. if ($response->success) {
  41. $token = json_decode($response->body, true)['access_token'];
  42. writeLog('success', 'Ombi Token Function - Grabbed token.', $username);
  43. }
  44. } catch (Requests_Exception $e) {
  45. writeLog('success', 'Ombi Token Function - Error: ' . $e->getMessage(), $username);
  46. };
  47. return ($token) ? $token : false;
  48. }
  49. function getTautulliToken($username, $password, $plexToken = null)
  50. {
  51. $token = null;
  52. $tautulliURLList = explode(',', $GLOBALS['tautulliURL']);
  53. if (count($tautulliURLList) !== 0) {
  54. foreach ($tautulliURLList as $key => $value) {
  55. try {
  56. $url = qualifyURL($value);
  57. $headers = array(
  58. "Accept" => "application/json",
  59. "Content-Type" => "application/x-www-form-urlencoded",
  60. "User-Agent" => isset($_SERVER ['HTTP_USER_AGENT']) ? $_SERVER ['HTTP_USER_AGENT'] : null
  61. );
  62. $data = array(
  63. "username" => $username,
  64. "password" => $password,
  65. "token" => $plexToken,
  66. "remember_me" => 1,
  67. );
  68. $options = (localURL($url)) ? array('verify' => false) : array();
  69. $response = Requests::post($url . '/auth/signin', $headers, $data, $options);
  70. if ($response->success) {
  71. $token[$key]['token'] = json_decode($response->body, true)['token'];
  72. $token[$key]['uuid'] = json_decode($response->body, true)['uuid'];
  73. writeLog('success', 'Tautulli Token Function - Grabbed token from: ' . $url, $username);
  74. } else {
  75. writeLog('error', 'Tautulli Token Function - Error on URL: ' . $url, $username);
  76. }
  77. } catch (Requests_Exception $e) {
  78. writeLog('error', 'Tautulli Token Function - Error: [' . $url . ']' . $e->getMessage(), $username);
  79. };
  80. }
  81. }
  82. return ($token) ? $token : false;
  83. }