Browse Source

HUE-3580 [sentry] Support non ASCII URI

Romain Rigaux 10 years ago
parent
commit
1591371ea7
2 changed files with 18 additions and 2 deletions
  1. 2 2
      apps/security/src/security/api/hive.py
  2. 16 0
      apps/security/src/security/tests.py

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

@@ -106,7 +106,7 @@ def _to_sentry_privilege(privilege):
       'dbName': privilege['dbName'],
       'tableName': privilege['tableName'],
       'columnName': privilege['columnName'],
-      'URI': _massage_uri(privilege['URI']),
+      'URI': _massage_uri(privilege['URI'].encode('utf-8')),
       'action': privilege['action'],
       'createTime': privilege['timestamp'],
       'grantOption': 1 if privilege['grantOption'] else 0,
@@ -129,7 +129,7 @@ def _hive_add_privileges(user, role, privileges):
             'scope': privilege.get('privilegeScope'),
             'table': privilege.get('tableName'),
             'column': privilege.get('columnName'),
-            'URI': privilege.get('URI'),
+            'URI': privilege.get('URI').encode('utf-8'),
             'server': privilege.get('serverName'),
             'grantOption': privilege.get('grantOption') == 1
         })

+ 16 - 0
apps/security/src/security/tests.py

@@ -26,6 +26,8 @@ from django.core.urlresolvers import reverse
 
 from useradmin.models import HuePermission, GroupPermission
 
+from security.api.hive import _to_sentry_privilege
+
 
 class TestSecurity():
 
@@ -47,3 +49,17 @@ class TestSecurity():
     GroupPermission.objects.get_or_create(group=group, hue_permission=perm)
 
     check(client, assert_true)
+
+  def test_permissions(self):
+    privilege = {
+      'privilegeScope': 'URI',
+      'serverName': 'server1',
+      'dbName': 'default',
+      'tableName': 'sample_07',
+      'columnName': '',
+      'URI': u'/tmp/à',
+      'action': 'ALL',
+      'timestamp': 0,
+      'grantOption': 0
+    }
+    _to_sentry_privilege(privilege)