Selaa lähdekoodia

[libsentry] First part of converting list_sentry_privileges_by_role to V2

Romain Rigaux 10 vuotta sitten
vanhempi
commit
d7afffe

+ 6 - 3
apps/security/src/security/api/sentry.py

@@ -81,11 +81,14 @@ def list_sentry_roles_by_group(request):
 
 def list_sentry_privileges_by_role(request):
   result = {'status': -1, 'message': 'Error'}
-  component = request.POST['component']
 
-  try:
+  try:    
+    serviceName = request.POST['server']
+    component = request.POST['component']
     roleName = request.POST['roleName']
-    sentry_privileges = get_api(request.user, component).list_sentry_privileges_by_role(roleName)
+
+    sentry_privileges = get_api(request.user, component).list_sentry_privileges_by_role(serviceName, roleName)
+
     result['sentry_privileges'] = sorted(sentry_privileges, key=lambda privilege: '%s.%s.%s.%s' % (privilege['server'], privilege['database'], privilege['table'], privilege['URI']))
     result['message'] = ''
     result['status'] = 0

+ 6 - 4
apps/security/src/security/static/security/js/sentry.ko.js

@@ -821,6 +821,7 @@ var HiveViewModel = function (initial) {
 
   // Models
   self.component = ko.observable(initial.component);
+  self.server = ko.observable(initial.sentry_provider);
   self.roles = ko.observableArray();
   self.tempRoles = ko.observableArray();
   self.originalRoles = ko.observableArray();
@@ -928,7 +929,7 @@ var HiveViewModel = function (initial) {
 
   self.expandSelectedRoles = function () {
     ko.utils.arrayForEach(self.selectedRoles(), function (role) {
-      if (!role.showPrivileges()) {
+      if (! role.showPrivileges()) {
         self.list_sentry_privileges_by_role(role);
       }
     });
@@ -1020,9 +1021,10 @@ var HiveViewModel = function (initial) {
     $.ajax({
       type: "POST",
       url: "/security/api/sentry/list_sentry_privileges_by_role",
-      data: {
-        'roleName': role.name,
-        'component': self.component()
+      data: {        
+        'server': self.server(),
+        'component': self.component(),
+        'roleName': role.name
       },
       success: function (data) {
         if (typeof data.status !== "undefined" && data.status == -1) {

+ 2 - 2
desktop/libs/libsentry/src/libsentry/api2.py

@@ -144,8 +144,8 @@ class SentryApi(object):
       raise SentryException(response)
 
   @ha_error_handler
-  def list_sentry_privileges_by_role(self, roleName, authorizableHierarchy=None):
-    response = self.client.list_sentry_privileges_by_role(roleName, authorizableHierarchy)
+  def list_sentry_privileges_by_role(self, serviceName, roleName, authorizables=None):
+    response = self.client.list_sentry_privileges_by_role(serviceName, roleName, authorizables)
 
     if response.status.value == 0:
       return [self._massage_priviledge(privilege) for privilege in response.privileges]

+ 4 - 4
desktop/libs/libsentry/src/libsentry/client2.py

@@ -139,10 +139,10 @@ class SentryClient(object):
     return self.client.list_sentry_roles_by_group(request)
 
 
-  def list_sentry_privileges_by_role(self, roleName, authorizableHierarchy=None):
-    if authorizableHierarchy is not None:
-      authorizableHierarchy = TAuthorizable(**authorizableHierarchy)
-    request = TListSentryPrivilegesRequest(requestorUserName=self.username, component=self.component, roleName=roleName, serviceName=authorizableHierarchy['server'], authorizables=authorizableHierarchy['authorizables'])
+  def list_sentry_privileges_by_role(self, serviceName, roleName, authorizables=None):
+    if authorizables is not None:
+      authorizables = TAuthorizable(**authorizables)
+    request = TListSentryPrivilegesRequest(requestorUserName=self.username, component=self.component, roleName=roleName, serviceName=serviceName, authorizables=authorizables)
     return self.client.list_sentry_privileges_by_role(request)