Эх сурвалжийг харах

[sentry] Remove the deprecated grantor principal field

Romain Rigaux 11 жил өмнө
parent
commit
db7e25c

+ 10 - 11
apps/security/src/security/api/hive.py

@@ -69,7 +69,7 @@ def _to_sentry_privilege(privilege):
       'action': privilege['action'],
       'createTime': privilege['timestamp'],
       'grantOption': 1 if privilege['grantOption'] else 0,
-  }  
+  }
 
 
 def _hive_add_privileges(user, role, privileges):
@@ -83,12 +83,11 @@ def _hive_add_privileges(user, role, privileges):
         # Mocked until Sentry API returns the info. Not used currently as we refresh the whole role.
         _privileges.append({
             'timestamp': int(time.time()),
-            'grantor': user.username,
             'database': privilege.get('dbName'),
             'action': privilege.get('action'),
             'scope': privilege.get('privilegeScope'),
             'table': privilege.get('tableName'),
-            'URI': privilege.get('URI'),            
+            'URI': privilege.get('URI'),
             'server': privilege.get('serverName'),
             'grantOption': privilege.get('grantOption') == 1
         })
@@ -112,7 +111,7 @@ def create_role(request):
     result['privileges'] = _hive_add_privileges(request.user, role, role['privileges'])
     api.alter_sentry_role_add_groups(role['name'], role['groups'])
 
-    result['role'] = {"name": role['name'], "groups": role['groups'], "grantorPrincipal": request.user.username}
+    result['role'] = {"name": role['name'], "groups": role['groups']}
 
     result['message'] = _('Role created!')
     result['status'] = 0
@@ -127,12 +126,12 @@ def update_role_groups(request):
 
   try:
     role = json.loads(request.POST['role'])
-    
+
     new_groups = set(role['groups']) - set(role['originalGroups'])
     deleted_groups = set(role['originalGroups']) - set(role['groups'])
 
     api = get_api(request.user)
-    
+
     if new_groups:
       api.alter_sentry_role_add_groups(role['name'], new_groups)
     if deleted_groups:
@@ -154,7 +153,7 @@ def save_privileges(request):
 
     new_privileges = [privilege for privilege in role['privilegesChanged'] if privilege['status'] == 'new']
     result['privileges'] = _hive_add_privileges(request.user, role, new_privileges)
-    
+
     deleted_privileges = [privilege for privilege in role['privilegesChanged'] if privilege['status'] == 'deleted']
     for privilege in deleted_privileges:
       _drop_sentry_privilege(request.user, role, privilege)
@@ -163,7 +162,7 @@ def save_privileges(request):
     old_privileges_ids = [privilege['id'] for privilege in modified_privileges]
     _hive_add_privileges(request.user, role, modified_privileges)
     for privilege in role['originalPrivileges']:
-      if privilege['id'] in old_privileges_ids:      
+      if privilege['id'] in old_privileges_ids:
         _drop_sentry_privilege(request.user, role, privilege)
 
     result['message'] = ''
@@ -274,14 +273,14 @@ def bulk_add_privileges(request):
       privilegeScope = 'TABLE' if table else 'DATABASE' if db else 'SERVER'
       authorizableHierarchy.update({
         'db': db,
-        'table': table, 
+        'table': table,
       })
 
       for privilege in privileges:
         privilege['dbName'] = db
         privilege['tableName'] = table
-        privilege['privilegeScope'] = privilegeScope        
-        _hive_add_privileges(request.user, {'name': privilege['roleName']}, [privilege])      
+        privilege['privilegeScope'] = privilegeScope
+        _hive_add_privileges(request.user, {'name': privilege['roleName']}, [privilege])
 
     result['message'] = _('Privileges added.')
     result['status'] = 0

+ 10 - 16
apps/security/src/security/templates/hive.mako

@@ -63,11 +63,11 @@ ${ layout.menubar(section='hive') }
     <input type="text" data-bind="filechooser: $data.URI, enable: privilegeType() == 'uri'" placeholder="URI">
 
     <select data-bind="options: $root.availableActions, select2: { update: $data.action, type: 'action'}" style="width: 100px"></select>
-    
+
     <div class="inline-block" style="vertical-align: middle">
       <input type="checkbox" data-bind="checked: grantOption"> ${ _('With grant') }
     </div>
-    
+
     <span class="showAdvancedSpace">&nbsp;&nbsp;</span><a class="pointer showAdvanced" data-bind="click: function(){ showAdvanced(true); }, visible: ! showAdvanced()"><i class="fa fa-cog"></i> ${ _('Show advanced') }</a>
 
     <div class="acl-block-section" data-bind="visible: showAdvanced">
@@ -86,10 +86,10 @@ ${ layout.menubar(section='hive') }
     <!-- /ko -->
 
     <em class="muted" data-bind="text: moment(timestamp()).fromNow()"></em> <span class="muted" data-bind="text: privilegeScope"></span><br/>
-        
+
     server=<span data-bind="text: serverName"></span>
-    
-    <!-- ko ifnot: URI() -->    
+
+    <!-- ko ifnot: URI() -->
       <span data-bind="visible: dbName">
         <i class="fa fa-long-arrow-right"></i> db=<a data-bind="attr: { href: '/metastore/tables/' + dbName() }" target="_blank"><span data-bind="text: dbName"></span></a>
       </span>
@@ -98,16 +98,14 @@ ${ layout.menubar(section='hive') }
       </span>
       <i class="fa fa-long-arrow-right"></i> action=<span data-bind="text: action"></span>
     <!-- /ko -->
-    
+
     <!-- ko if: grantOption() -->
       <i class="fa fa-link" title="${ _('With grant option') }"></i>
     <!-- /ko -->
-    
+
     <!-- ko if: URI() -->
       <span data-bind="text: URI"></span>
     <!-- /ko -->
-    <br/>
-    <span data-bind="text: grantor"></span>
   <!-- /ko -->
 </div>
 </script>
@@ -254,8 +252,7 @@ ${ layout.menubar(section='hive') }
               <th width="1%"><div data-bind="click: $root.selectAllRoles, css: { hueCheckbox: true, 'fa': true, 'fa-check': allRolesSelected }"></div></th>
               <th width="2%"></th>
               <th width="20%">${ _('Name') }</th>
-              <th width="54%">${ _('Groups') }</th>
-              <th width="20%">${ _('Grantor Principal') }</th>
+              <th width="74%">${ _('Groups') }</th>
               <th width="3%"></th>
             </thead>
             <tbody data-bind="foreach: $root.filteredRoles">
@@ -293,9 +290,6 @@ ${ layout.menubar(section='hive') }
                     </a>
                   </div>
                 </td>
-                <td>
-                  <a href=""><span data-bind="text: grantorPrincipal"></span></a>
-                </td>
                 <td>
                 </td>
               </tr>
@@ -315,7 +309,7 @@ ${ layout.menubar(section='hive') }
                     <span class="pointer" data-bind="click: $root.role().savePrivileges, visible: privilegesChanged().length > 0" title="${ _('Save') }"> &nbsp; <i class="fa fa-save"></i></span>
                   </div>
                 </td>
-              </tr>              
+              </tr>
             </tbody>
           </table>
         </div>
@@ -602,7 +596,7 @@ ${ tree.import_templates(itemClick='$root.assist.setPath', iconClick='$root.assi
       $("#selectedGroup").select2("val", "");
       $("#selectedGroup").change(function() {
         viewModel.list_sentry_privileges_by_authorizable();
-        viewModel.list_sentry_roles_by_group(); 
+        viewModel.list_sentry_roles_by_group();
       });
 
       $(document).on("added.bulk.privileges", function() {

+ 1 - 3
apps/security/static/js/hive.ko.js

@@ -64,7 +64,6 @@ var Privilege = function (vm, privilege) {
     }
   });
   self.timestamp = ko.observable(typeof privilege.timestamp != "undefined" && privilege.timestamp != null ? privilege.timestamp : 0);
-  self.grantor = ko.observable(typeof privilege.grantor != "undefined" && privilege.grantor != null ? privilege.grantor : "");
   self.grantOption = ko.observable(typeof privilege.grantOption != "undefined" && privilege.grantOption != null ? privilege.grantOption : false);
 
   // UI
@@ -132,7 +131,6 @@ var Role = function (vm, role) {
   self.handleSelect = function (row, e) {
     self.selected(!self.selected());
   }
-  self.grantorPrincipal = ko.observable(typeof role.grantorPrincipal != "undefined" && role.grantorPrincipal != null ? role.grantorPrincipal : "");
   self.groups = ko.observableArray();
   self.originalGroups = ko.observableArray();
   $.each(typeof role.groups != "undefined" && role.groups != null ? role.groups : [], function (index, group) {
@@ -760,7 +758,7 @@ var HiveViewModel = function (initial) {
             _inPrivileges = true;
           }
         });
-        return role.name().toLowerCase().indexOf(_filter) > -1 || role.grantorPrincipal().toLowerCase().indexOf(_filter) > -1 || _inGroups || _inPrivileges;
+        return role.name().toLowerCase().indexOf(_filter) > -1 || _inGroups || _inPrivileges;
       });
     }
   }, self);

+ 0 - 2
desktop/libs/libsentry/src/libsentry/api.py

@@ -102,7 +102,6 @@ class SentryApi(object):
       for role in response.roles:
         roles.append({
           'name': role.roleName,
-          'grantorPrincipal': role.grantorPrincipal,
           'groups': [group.groupName for group in role.groups]
         })
       return roles
@@ -155,5 +154,4 @@ class SentryApi(object):
         'URI': privilege.URI,
         'action': privilege.action.upper(),
         'timestamp': privilege.createTime,
-        'grantor': privilege.grantorPrincipal
     }

+ 5 - 5
desktop/libs/libsentry/src/libsentry/client.py

@@ -36,12 +36,12 @@ LOG = logging.getLogger(__name__)
 struct TSentryPrivilege {
 1: required string privilegeScope, # Valid values are SERVER, DATABASE, TABLE
 3: required string serverName,
-4: optional string dbName,
-5: optional string tableName,
-6: optional string URI,
-7: required string action,
+4: optional string dbName = "",
+5: optional string tableName = "",
+6: optional string URI = "",
+7: required string action = "",
 8: optional i64 createTime, # Set on server side
-9: optional string grantorPrincipal # Set on server side
+9: optional TSentryGrantOption grantOption = TSentryGrantOption.FALSE
 }
 
 struct TSentryAuthorizable {