浏览代码

[sentry] Support deleting a Solr privilege

Romain Rigaux 9 年之前
父节点
当前提交
5647aa0

+ 2 - 2
apps/security/src/security/api/sentry.py

@@ -267,14 +267,14 @@ def save_privileges(request):
 
     deleted_privileges = [privilege for privilege in role['privilegesChanged'] if privilege['status'] == 'deleted']
     for privilege in deleted_privileges:
-      _drop_sentry_privilege(request.user, role, privilege)
+      _drop_sentry_privilege(request.user, role, privilege, component)
 
     modified_privileges = [privilege for privilege in role['privilegesChanged'] if privilege['status'] == 'modified']
     old_privileges_ids = [privilege['id'] for privilege in modified_privileges]
     _hive_add_privileges(request.user, role, modified_privileges, component)
     for privilege in role['originalPrivileges']:
       if privilege['id'] in old_privileges_ids:
-        _drop_sentry_privilege(request.user, role, privilege)
+        _drop_sentry_privilege(request.user, role, privilege, component)
 
     result['message'] = _('Privileges updated')
     result['status'] = 0

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

@@ -102,8 +102,8 @@ class SentryApi(object):
       raise SentryException(response)
 
   @ha_error_handler
-  def alter_sentry_role_revoke_privilege(self, roleName, tSentryPrivilege=None, tSentryPrivileges=None):
-    response = self.client.alter_sentry_role_revoke_privilege(roleName, tSentryPrivilege, tSentryPrivileges)
+  def alter_sentry_role_revoke_privilege(self, roleName, tSentryPrivilege=None):
+    response = self.client.alter_sentry_role_revoke_privilege(roleName, tSentryPrivilege)
 
     if response.status.value == 0:
       return response

+ 3 - 5
desktop/libs/libsentry/src/libsentry/client2.py

@@ -110,14 +110,12 @@ class SentryClient(object):
     return self.client.alter_sentry_role_grant_privilege(request)
 
 
-  def alter_sentry_role_revoke_privilege(self, roleName, tSentryPrivilege, tSentryPrivileges):
+  def alter_sentry_role_revoke_privilege(self, roleName, tSentryPrivilege):
     if tSentryPrivilege is not None:
+      tSentryPrivilege['authorizables'] = [TAuthorizable(type=_auth['type'], name=_auth['name']) for _auth in tSentryPrivilege['authorizables']]
       tSentryPrivilege = TSentryPrivilege(**tSentryPrivilege)
 
-    if tSentryPrivileges is not None:
-      tSentryPrivileges = [TSentryPrivilege(**tSentryPrivilege) for tSentryPrivilege in tSentryPrivileges]
-
-    request = TAlterSentryRoleRevokePrivilegeRequest(requestorUserName=self.username, component=self.component, roleName=roleName, privilege=tSentryPrivilege, privileges=tSentryPrivileges)
+    request = TAlterSentryRoleRevokePrivilegeRequest(requestorUserName=self.username, component=self.component, roleName=roleName, privilege=tSentryPrivilege)
     return self.client.alter_sentry_role_revoke_privilege(request)