Bläddra i källkod

[api] Add IAM related public APIs (#2598)

- For e.g, APIs like /list_for_autocomplete, /get_user, /get_user_by_id
- Some APIs like add user, add ldap user, edit user are currently not ported to public because their respective useradmin_views return mako templates.
Harsh Gupta 4 år sedan
förälder
incheckning
68d30133bc
2 ändrade filer med 28 tillägg och 1 borttagningar
  1. 21 1
      desktop/core/src/desktop/api_public.py
  2. 7 0
      desktop/core/src/desktop/api_public_urls.py

+ 21 - 1
desktop/core/src/desktop/api_public.py

@@ -31,6 +31,9 @@ from desktop.auth.backend import rewrite_user
 from desktop.lib import fsmanager
 from desktop.lib.connectors import api as connector_api
 
+from useradmin import views as useradmin_views
+from useradmin import api as useradmin_api
+
 from beeswax import api as beeswax_api
 
 
@@ -276,7 +279,6 @@ def similar_queries(request):
   django_request = get_django_request(request)
   return optimizer_api.similar_queries(django_request)
 
-
 @api_view(["POST"])
 def top_databases(request):
   django_request = get_django_request(request)
@@ -313,6 +315,24 @@ def search_entities_interactive(request):
   return desktop_api.search_entities_interactive(django_request)
 
 
+# IAM
+
+@api_view(["GET"])
+def list_for_autocomplete(request):
+  django_request = get_django_request(request)
+  return useradmin_views.list_for_autocomplete(django_request)
+
+@api_view(["GET"])
+def get_users_by_id(request):
+  django_request = get_django_request(request)
+  return useradmin_views.get_users_by_id(django_request)
+
+@api_view(["GET"])
+def get_users(request):
+  django_request = get_django_request(request)
+  return useradmin_api.get_users(django_request)
+
+
 # Utils
 
 def _get_interpreter_from_dialect(dialect, user):

+ 7 - 0
desktop/core/src/desktop/api_public_urls.py

@@ -145,3 +145,10 @@ urlpatterns += [
 urlpatterns += [
   re_path(r'^metadata/search/entities_interactive/?$', api_public.search_entities_interactive, name='metadata_entities_interactive'),
 ]
+
+urlpatterns += [
+  re_path(r'^iam/users/autocomplete', api_public.list_for_autocomplete, name='iam_users_list_for_autocomplete'),
+  re_path(r'^iam/users/?$', api_public.get_users_by_id, name='iam_get_users_by_id'),
+
+  re_path(r'^iam/get_users/?', api_public.get_users, name='iam_get_users'),
+]