4
0

login.php 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <?php
  2. $GLOBALS['organizrPages'][] = 'login';
  3. function get_page_login($Organizr)
  4. {
  5. if (!$Organizr) {
  6. $Organizr = new Organizr();
  7. }
  8. if ((!$Organizr->hasDB())) {
  9. return false;
  10. }
  11. $hideOrganizrLogin = ($Organizr->checkoAuth()) ? 'collapse' : 'collapse in';
  12. $hideOrganizrLoginHeader = ($Organizr->checkoAuthOnly()) ? 'hidden' : '';
  13. $hideOrganizrLoginHeader2 = ($Organizr->checkoAuth()) ? '' : 'hidden';
  14. $hideOrganizrRecoveryPassword = ($Organizr->config['disableRecoverPass']) ? 'hidden' : '';
  15. $customForgotPasswordText = (empty($Organizr->config['customForgotPassText'])) ? 'Enter your Email and instructions will be sent to you!' : $Organizr->config['customForgotPassText'];
  16. $customForgotPasswordText = ($Organizr->config['disableRecoverPass']) ? 'Disabled' : $customForgotPasswordText;
  17. $oidcAutoRedirectScript = '';
  18. if ($Organizr->shouldAutoRedirectToOIDC()) {
  19. $provider = $Organizr->getAutoRedirectProvider();
  20. $oidcAutoRedirectScript = '
  21. // OIDC Auto-redirect
  22. if (!window.location.hash.includes("noredirect") && !sessionStorage.getItem("oidc_no_redirect")) {
  23. window.location.href = "api/v2/oidc/' . htmlspecialchars($provider) . '/authorize";
  24. }
  25. ';
  26. }
  27. return '
  28. <script>
  29. if(activeInfo.settings.login.rememberMe){
  30. $(\'#checkbox-login\').prop(\'checked\',true);
  31. }
  32. ' . $oidcAutoRedirectScript . '
  33. </script>
  34. <section id="wrapper" class="login-register">
  35. <div class="login-box login-sidebar animated slideInRight">
  36. <div class="white-box">
  37. <form class="form-horizontal" id="loginform" onsubmit="return false;">
  38. <input id="login-attempts" class="form-control" name="loginAttempts" type="hidden">
  39. ' . $Organizr->logoOrText() . '
  40. <div id="oAuth-div" class="form-group hidden">
  41. <div class="col-xs-12">
  42. <div class="panel panel-success animated tada">
  43. <div class="panel-heading">oAuth Successful - Please wait...</div>
  44. </div>
  45. </div>
  46. </div>
  47. <div id="tfa-div" class="form-group hidden">
  48. <div class="col-xs-12">
  49. <div class="panel panel-warning animated tada">
  50. <div class="panel-heading"> 2FA
  51. <div class="pull-right"><a href="#" data-perform="panel-collapse"><i class="ti-minus"></i></a> <a href="#" data-perform="panel-dismiss"><i class="ti-close"></i></a> </div>
  52. </div>
  53. <div class="panel-wrapper collapse in" aria-expanded="true">
  54. <div class="panel-body">
  55. <div class="input-group" style="width: 100%;">
  56. <div class="input-group-addon hidden-xs"><i class="ti-lock"></i></div>
  57. <input type="text" class="form-control tfa-input" name="tfaCode" placeholder="Code" data-lpignore="true" autocomplete="off" autocorrect="off" autocapitalize="off" maxlength="6" spellcheck="false" autofocus="">
  58. </div>
  59. <button class="btn btn-warning btn-lg btn-block text-uppercase waves-effect waves-light login-button m-t-10" type="submit" lang="en">Login</button>
  60. </div>
  61. </div>
  62. </div>
  63. </div>
  64. </div>
  65. <div class="panel-group" id="login-panels" data-type="accordion" aria-multiselectable="true" role="tablist">
  66. <!-- ORGANIZR LOGIN -->
  67. <div class="panel">
  68. <div class="panel-heading bg-org ' . $hideOrganizrLoginHeader . ' ' . $hideOrganizrLoginHeader2 . '" id="organizr-login-heading" role="tab">
  69. <a class="panel-title collapsed" data-toggle="collapse" href="#organizr-login-collapse" data-parent="#login-panels" aria-expanded="false" aria-controls="organizr-login-collapse">
  70. <img class="lazyload loginTitle" data-src="plugins/images/organizr/logo-no-border.png"> &nbsp;
  71. <span class="text-uppercase fw300" lang="en">Login with Organizr</span>
  72. </a>
  73. <div class="clearfix"></div>
  74. </div>
  75. <div class="panel-collapse ' . $hideOrganizrLogin . '" id="organizr-login-collapse" aria-labelledby="organizr-login-heading" role="tabpanel">
  76. <div class="panel-body">
  77. <div class="form-group">
  78. <div class="col-xs-12">
  79. <input id="login-username-Input" class="form-control" name="username" type="text" required="" placeholder="Username" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" lang="en" autofocus>
  80. </div>
  81. </div>
  82. <div class="form-group">
  83. <div class="col-xs-12">
  84. <input id="login-password-Input" class="form-control" name="password" type="password" required="" placeholder="Password" lang="en">
  85. </div>
  86. </div>
  87. <div class="form-group">
  88. <div class="col-md-12">
  89. <div class="checkbox checkbox-primary pull-left p-t-0 remember-me">
  90. <input id="checkbox-login" name="remember" type="checkbox">
  91. <label for="checkbox-login" lang="en">Remember Me</label>
  92. </div>
  93. </div>
  94. </div>
  95. <div class="form-group text-center m-t-20 m-b-0">
  96. <div class="col-xs-12">
  97. <button class="btn btn-info btn-lg btn-block text-uppercase waves-effect waves-light login-button" type="submit" lang="en">Login</button>
  98. </div>
  99. </div>
  100. <div class="form-group m-b-0">
  101. <div class="col-sm-12 text-center">
  102. <input id="oAuth-Input" class="form-control" name="oAuth" type="hidden">
  103. <input id="oAuthType-Input" class="form-control" name="oAuthType" type="hidden">
  104. ' . $Organizr->showLogin() . '
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. </div>
  110. <!-- END ORGANIZR LOGIN -->
  111. <!-- PLEX OAUTH LOGIN -->
  112. ' . $Organizr->showoAuth() . '
  113. <!-- END PLEX OAUTH LOGIN -->
  114. <!-- OIDC SSO LOGIN -->
  115. ' . $Organizr->showoAuthOIDC() . '
  116. <!-- END OIDC SSO LOGIN -->
  117. </div>
  118. </form>
  119. <form class="form-horizontal form-material hidden" id="registerForm" onsubmit="return false;">
  120. <div class="form-group m-t-40">
  121. <div class="col-xs-12">
  122. <input class="form-control" type="text" name="registrationPassword" required="" placeholder="Registration Password" lang="en" autofocus>
  123. </div>
  124. </div>
  125. <div class="form-group">
  126. <div class="col-xs-12">
  127. <input class="form-control" name="username" type="text" required="" placeholder="Username" lang="en">
  128. </div>
  129. </div>
  130. <div class="form-group">
  131. <div class="col-xs-12">
  132. <input class="form-control" name="email" type="text" required="" placeholder="Email" lang="en">
  133. </div>
  134. </div>
  135. <div class="form-group">
  136. <div class="col-xs-12">
  137. <input class="form-control" name="password" type="password" required="" placeholder="Password" lang="en">
  138. </div>
  139. </div>
  140. <div class="form-group text-center m-t-20">
  141. <div class="col-xs-12">
  142. <button class="btn btn-info btn-lg btn-block text-uppercase waves-effect waves-light register-button" type="submit" lang="en">Register</button>
  143. </div>
  144. </div>
  145. <div class="form-group text-center m-t-20">
  146. <div class="col-xs-12">
  147. <button id="leave-registration" class="btn btn-primary btn-lg btn-block text-uppercase waves-effect waves-light" type="button" lang="en">Go Back</button>
  148. </div>
  149. </div>
  150. </form>
  151. <form class="form-horizontal" id="recoverform" onsubmit="return false;">
  152. <div class="form-group ">
  153. <div class="col-xs-12">
  154. <h3 lang="en">Recover Password</h3>
  155. <p class="text-muted" lang="en">' . $customForgotPasswordText . '</p>
  156. </div>
  157. </div>
  158. <div class="form-group ' . $hideOrganizrRecoveryPassword . '">
  159. <div class="col-xs-12">
  160. <input id="recover-input" class="form-control" name="email" type="text" placeholder="Email" lang="en" required>
  161. </div>
  162. </div>
  163. <div class="form-group text-center m-t-20 ' . $hideOrganizrRecoveryPassword . '">
  164. <div class="col-xs-12">
  165. <button class="btn btn-primary btn-lg btn-block text-uppercase waves-effect waves-light reset-button" type="submit" lang="en">Reset</button>
  166. </div>
  167. </div>
  168. <div class="form-group text-center m-t-20">
  169. <div class="col-xs-12">
  170. <button id="leave-recover" class="btn btn-primary btn-lg btn-block text-uppercase waves-effect waves-light" type="button" lang="en">Go Back</button>
  171. </div>
  172. </div>
  173. </form>
  174. </div>
  175. </div>
  176. </section>
  177. ';
  178. }