FixUsersLongLogin.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. Lib::loadClass('RouteBase');
  3. class Route_FixUsersLongLogin extends RouteBase {
  4. public function handleAuth() {
  5. if (!User::logged()) {
  6. throw new HttpException('Unauthorized', 401);
  7. }
  8. }
  9. public function defaultAction() {
  10. SE_Layout::gora();
  11. SE_Layout::menu();
  12. $this->_menu();
  13. SE_Layout::dol();
  14. }
  15. private function _menu($selectedMonth) {
  16. $usersTodoList = $this->getUsersWithTooLongLogin();
  17. ?>
  18. <div class="container">
  19. <?php if (empty($usersTodoList)) : ?>
  20. <div class="alert alert-info">
  21. Brak użytwkoników z loginem dłuższym niż 20 znaków
  22. </div>
  23. <?php else : ?>
  24. <table class="table table-bordered table-hovered">
  25. <tr>
  26. <th>Lp.</th>
  27. <th>Nr</th>
  28. <th>Login</th>
  29. <th>Poziom Uprawnień</th>
  30. <th>Status</th>
  31. <th>Data synch.</th>
  32. <th>Nowy login</th>
  33. <th>Synch. nowy login</th>
  34. </tr>
  35. <?php $i = 0; foreach ($usersTodoList as $user) : $i++ ?>
  36. <?php
  37. if (false !== strpos($user->ADM_ACCOUNT, '.')) {
  38. $newLogin = explode('.', $user->ADM_ACCOUNT, 2);
  39. $newLogin = substr($newLogin[0], 0, 1) . ".{$newLogin[1]}";
  40. if (strlen($newLogin) > 20) {
  41. $newLogin = substr($newLogin, 0, 20);
  42. }
  43. } else {
  44. $newLogin = substr($user->ADM_ACCOUNT, 0, 20);
  45. }
  46. ?>
  47. <tr>
  48. <td><?php echo $i; ?></td>
  49. <td><?php echo $user->ID; ?></td>
  50. <td style="font-family:monospace">
  51. <span style=""><?php echo substr($user->ADM_ACCOUNT, 0, 20); ?></span><span style="color:red"><?php echo substr($user->ADM_ACCOUNT, 20); ?></span>
  52. </td>
  53. <td><?php echo $user->ADM_ADMIN_LEVEL; ?></td>
  54. <td><?php echo $user->A_STATUS; ?></td>
  55. <td><?php echo $user->A_SYNC_LDAP_DATE; ?></td>
  56. <td style="font-family:monospace;color:green;"><?php echo $newLogin; ?></td>
  57. <td><a target="_blank"
  58. href="https://biuro.biall-net.pl/SE/version-git/index.php?MENU_INIT=SYNC_LDAP_PERMS&syncUsr=<?php echo $newLogin; ?>">synchronizuj do LDAP (<?php echo $newLogin; ?>)</td>
  59. </tr>
  60. <?php endforeach; ?>
  61. </table>
  62. <?php endif; ?>
  63. </div>
  64. <?php
  65. }
  66. public function getUsersWithTooLongLogin() {
  67. $usersTodoList = array();
  68. $db = DB::getDB();
  69. $sql = <<<SQL
  70. select `ID`, `ADM_ACCOUNT`, `A_STATUS`
  71. , `ADM_ADMIN_LEVEL`
  72. , `A_SYNC_LDAP_DATE`
  73. from `ADMIN_USERS`
  74. where LENGTH(`ADM_ACCOUNT`) > 20
  75. SQL;
  76. $res = $db->query($sql);
  77. while ($r = $db->fetch($res)) {
  78. $usersTodoList[$r->ADM_ACCOUNT] = $r;
  79. }
  80. return $usersTodoList;
  81. }
  82. }