diff --git a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/modules/authentication/implementations/Auth0PermissionsHelper.java b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/modules/authentication/implementations/Auth0PermissionsHelper.java index bb35b3d8..06029ab6 100644 --- a/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/modules/authentication/implementations/Auth0PermissionsHelper.java +++ b/qqq-backend-core/src/main/java/com/kingsrook/qqq/backend/core/modules/authentication/implementations/Auth0PermissionsHelper.java @@ -146,6 +146,101 @@ public class Auth0PermissionsHelper + /******************************************************************************* + ** + *******************************************************************************/ + public Set getUsers() throws QException + { + Set rs = new LinkedHashSet<>(); + try(CloseableHttpClient httpClient = HttpClientBuilder.create().build()) + { + HttpGet request = new HttpGet(baseUrl + "users"); + request.addHeader("Authorization", "Bearer " + token); + request.addHeader("Content-Type", "application/json"); + + try(CloseableHttpResponse response = httpClient.execute(request)) + { + logResponseStatus(response); + + String body = EntityUtils.toString(response.getEntity()); + JSONArray json = new JSONArray(body); + for(int i = 0; i < json.length(); i++) + { + JSONObject user = json.getJSONObject(i); + rs.add(user.getString("user_id")); + } + } + } + catch(Exception e) + { + e.printStackTrace(); + throw (new QException("Error getting auth0 users", e)); + } + + return (rs); + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + public String getRoleName(String roleId) throws QException + { + try(CloseableHttpClient httpClient = HttpClientBuilder.create().build()) + { + HttpGet request = new HttpGet(baseUrl + "roles/" + roleId); + request.addHeader("Authorization", "Bearer " + token); + request.addHeader("Content-Type", "application/json"); + + try(CloseableHttpResponse response = httpClient.execute(request)) + { + logResponseStatus(response); + + String body = EntityUtils.toString(response.getEntity()); + JSONObject json = new JSONObject(body); + return (json.getString("name")); + } + } + catch(Exception e) + { + e.printStackTrace(); + throw (new QException("Error getting auth0 roles", e)); + } + } + + + + /******************************************************************************* + ** + *******************************************************************************/ + public String getUserName(String userId) throws QException + { + Set rs = new LinkedHashSet<>(); + try(CloseableHttpClient httpClient = HttpClientBuilder.create().build()) + { + HttpGet request = new HttpGet(baseUrl + "users/" + URLEncoder.encode(userId, StandardCharsets.UTF_8)); + request.addHeader("Authorization", "Bearer " + token); + request.addHeader("Content-Type", "application/json"); + + try(CloseableHttpResponse response = httpClient.execute(request)) + { + logResponseStatus(response); + + String body = EntityUtils.toString(response.getEntity()); + JSONObject json = new JSONObject(body); + return (json.getString("name")); + } + } + catch(Exception e) + { + e.printStackTrace(); + throw (new QException("Error getting auth0 users", e)); + } + } + + + /******************************************************************************* ** *******************************************************************************/ @@ -190,6 +285,50 @@ public class Auth0PermissionsHelper + /******************************************************************************* + ** + *******************************************************************************/ + public Set getPermissionsForUser(String userId) throws QException + { + Set rs = new LinkedHashSet<>(); + try(CloseableHttpClient httpClient = HttpClientBuilder.create().build()) + { + for(int page = 0; ; page++) + { + HttpGet request = new HttpGet(baseUrl + "users/" + URLEncoder.encode(userId, StandardCharsets.UTF_8) + "/permissions?page=" + page); + request.addHeader("Authorization", "Bearer " + token); + request.addHeader("Content-Type", "application/json"); + + try(CloseableHttpResponse response = httpClient.execute(request)) + { + logResponseStatus(response); + + String body = EntityUtils.toString(response.getEntity()); + JSONArray json = new JSONArray(body); + if(json.isEmpty()) + { + break; + } + + for(int i = 0; i < json.length(); i++) + { + JSONObject permission = json.getJSONObject(i); + rs.add(permission.getString("permission_name")); + } + } + } + } + catch(Exception e) + { + e.printStackTrace(); + throw (new QException("Error getting auth0 permissions for user", e)); + } + + return (rs); + } + + + /******************************************************************************* ** *******************************************************************************/ @@ -363,7 +502,7 @@ public class Auth0PermissionsHelper { Integer statusCode = response.getStatusLine().getStatusCode(); String statusReasonPhrase = response.getStatusLine().getReasonPhrase(); - System.out.println("Result: " + statusCode + " : " + statusReasonPhrase); + // System.out.println("Result: " + statusCode + " : " + statusReasonPhrase); if(statusCode > 299) {