PageRenderTime 47ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/cplog/login.php

https://github.com/chokoleytdesignoper/fluxcp_choko
PHP | 84 lines | 69 code | 15 blank | 0 comment | 16 complexity | e893c12d0362a784cc88b60bcc3a3097 MD5 | raw file
Possible License(s): LGPL-2.1, LGPL-3.0, BSD-3-Clause
  1. <?php
  2. if (!defined('FLUX_ROOT')) exit;
  3. $title = 'List Logins';
  4. $loginLogTable = Flux::config('FluxTables.LoginLogTable');
  5. $sqlpartial = "WHERE 1=1 ";
  6. $bind = array();
  7. $password = $params->get('password');
  8. $accountID = (int)$params->get('account_id');
  9. $username = trim($params->get('username'));
  10. $ipAddress = trim($params->get('ip'));
  11. $loginAfter = $params->get('login_after_date');
  12. $loginBefore = $params->get('login_before_date');
  13. $errorCode = $params->get('error_code');
  14. if ($password && $auth->allowedToSearchCpLoginLogPw) {
  15. $sqlpartial .= 'AND password = ? ';
  16. $bind[] = $session->loginAthenaGroup->loginServer->config->getUseMD5() ? md5($password) : $password;
  17. }
  18. if ($accountID) {
  19. $sqlpartial .= 'AND account_id = ? ';
  20. $bind[] = $accountID;
  21. }
  22. if ($username) {
  23. $sqlpartial .= 'AND username LIKE ? ';
  24. $bind[] = "%$username%";
  25. }
  26. if ($ipAddress) {
  27. $sqlpartial .= 'AND ip LIKE ? ';
  28. $bind[] = "%$ipAddress%";
  29. }
  30. if ($loginAfter) {
  31. $sqlpartial .= 'AND login_date >= ? ';
  32. $bind[] = $loginAfter;
  33. }
  34. if ($loginBefore) {
  35. $sqlpartial .= 'AND login_date <= ? ';
  36. $bind[] = $loginBefore;
  37. }
  38. if (!is_null($errorCode) && strtolower($errorCode) != 'all') {
  39. if (strtolower($errorCode) == 'none') {
  40. $sqlpartial .= 'AND error_code IS NULL ';
  41. }
  42. else {
  43. $sqlpartial .= 'AND error_code = ? ';
  44. $bind[] = $errorCode;
  45. }
  46. }
  47. $sql = "SELECT COUNT(id) AS total FROM {$server->loginDatabase}.$loginLogTable $sqlpartial";
  48. $sth = $server->connection->getStatement($sql);
  49. $sth->execute($bind);
  50. $paginator = $this->getPaginator($sth->fetch()->total);
  51. $paginator->setSortableColumns(array(
  52. 'account_id', 'username', 'password', 'ip',
  53. 'login_date' => 'desc', 'error_code'
  54. ));
  55. $sql = "SELECT account_id, username, password, ip, login_date, error_code FROM {$server->loginDatabase}.$loginLogTable $sqlpartial";
  56. $sql = $paginator->getSQL($sql);
  57. $sth = $server->connection->getStatement($sql);
  58. $sth->execute($bind);
  59. $logins = $sth->fetchAll();
  60. $loginErrors = Flux::config('LoginErrors');
  61. if ($logins) {
  62. foreach ($logins as $_tmplogin) {
  63. $_tmplogin->error_type = $loginErrors->get($_tmplogin->error_code);
  64. if (is_null($_tmplogin->error_type)) {
  65. $_tmplogin->error_type = $_tmplogin->error_code;
  66. }
  67. }
  68. }
  69. ?>