PageRenderTime 39ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/branches/1.2.0/www/server/grids/client_roles_list.php

http://scalr.googlecode.com/
PHP | 122 lines | 90 code | 27 blank | 5 comment | 33 complexity | 5d99e0a0bdbde32536ee092042baa25e MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0, GPL-3.0
  1. <?php
  2. $response = array();
  3. // AJAX_REQUEST;
  4. $context = 6;
  5. try
  6. {
  7. $enable_json = true;
  8. include("../../src/prepend.inc.php");
  9. if ($_SESSION['uid'] == 0)
  10. $sql = "SELECT * from roles WHERE 1=1";
  11. else
  12. $sql = "SELECT * from roles WHERE (clientid='{$_SESSION['uid']}' OR (roletype='".ROLE_TYPE::SHARED."' AND clientid = '0') OR (roletype='".ROLE_TYPE::SHARED."' AND clientid != '0' AND approval_state='".APPROVAL_STATE::APPROVED."'))";
  13. //Region filter
  14. $sql .= " AND region='".$_SESSION['aws_region']."'";
  15. if ($req_clientid)
  16. {
  17. $id = (int)$req_clientid;
  18. $sql .= " AND clientid='{$id}'";
  19. }
  20. if ($req_type)
  21. {
  22. $type = preg_replace("/[^A-Za-z]+/", "", $req_type);
  23. $sql .= " AND roletype='{$type}'";
  24. }
  25. if ($req_origin)
  26. {
  27. if ($req_origin == SCRIPT_ORIGIN_TYPE::CUSTOM)
  28. $sql .= " AND roletype = '".ROLE_TYPE::CUSTOM."'";
  29. elseif ($req_origin == SCRIPT_ORIGIN_TYPE::USER_CONTRIBUTED)
  30. $sql .= " AND (roletype = '".ROLE_TYPE::SHARED."' AND clientid != '0')";
  31. elseif ($req_origin == SCRIPT_ORIGIN_TYPE::SHARED)
  32. $sql .= " AND (roletype = '".ROLE_TYPE::SHARED."' AND clientid = '0')";
  33. }
  34. if ($req_approval_state && $req_origin != SCRIPT_ORIGIN_TYPE::SHARED)
  35. {
  36. $state = preg_replace("/[^A-Za-z]+/", "", $req_approval_state);
  37. $sql .= " AND approval_state = '{$state}'";
  38. $sql .= " AND clientid != '0'";
  39. }
  40. elseif ($req_type == ROLE_TYPE::SHARED)
  41. $sql .= " AND clientid = '0'";
  42. if ($req_query)
  43. {
  44. $filter = mysql_escape_string($req_query);
  45. foreach(array("name", "comments", "description", "ami_id") as $field)
  46. {
  47. $likes[] = "$field LIKE '%{$filter}%'";
  48. }
  49. $sql .= !stristr($sql, "WHERE") ? " WHERE " : " AND (";
  50. $sql .= join(" OR ", $likes);
  51. $sql .= ")";
  52. }
  53. $sort = $req_sort ? mysql_escape_string($req_sort) : "id";
  54. $dir = $req_dir ? mysql_escape_string($req_dir) : "ASC";
  55. $sql .= " ORDER BY $sort $dir";
  56. $response["total"] = $db->Execute($sql)->RecordCount();
  57. $start = $req_start ? (int) $req_start : 0;
  58. $limit = $req_limit ? (int) $req_limit : 20;
  59. $sql .= " LIMIT $start, $limit";
  60. $response["data"] = array();
  61. //
  62. // Rows
  63. //
  64. foreach ($db->GetAll($sql) as $row)
  65. {
  66. if ($row['ami_id'] && $row['roletype'] != ROLE_TYPE::SHARED)
  67. $row["isreplaced"] = $db->GetOne("SELECT id FROM roles WHERE `replace`='{$row['ami_id']}'");
  68. if ($row['clientid'] == 0)
  69. $row["client_name"] = "Scalr";
  70. else
  71. $row["client_name"] = $db->GetOne("SELECT fullname FROM clients WHERE id='{$row['clientid']}'");
  72. if (!$row["client_name"])
  73. $row["client_name"] = "";
  74. if ($row["isreplaced"])
  75. $infrole = $db->GetRow("SELECT * FROM roles WHERE `replace`='{$row['ami_id']}'");
  76. else
  77. $infrole = $row;
  78. $time = strtotime($row['dtbuilt']);
  79. if ($time)
  80. $row['dtbuilt'] = date("M j, Y", $time);
  81. if ($infrole["replace"] != '' && $infrole["iscompleted"] != 2)
  82. $row["abort_id"] = $infrole['id'];
  83. $row['type'] = ROLE_ALIAS::GetTypeByAlias($row['alias']);
  84. $row['id'] = ($row['isreplaced']) ? $row['isreplaced'] : $row['id'];
  85. if ($row["replace"] == "" || $db->GetOne("SELECT roletype FROM roles WHERE ami_id='{$row['replace']}'") == ROLE_TYPE::SHARED)
  86. $display["rows"][] = $row;
  87. $response["data"][] = $row;
  88. }
  89. }
  90. catch(Exception $e)
  91. {
  92. $response = array("error" => $e->getMessage(), "data" => array());
  93. }
  94. print json_encode($response);
  95. ?>