@@ -99,11 +99,21 @@ def revoke(user, table_name = nil, family = nil, qualifier = nil)
99
99
# Namespace should exist first.
100
100
namespace_name = table_name [ 1 ...table_name . length ]
101
101
raise ( ArgumentError , "Can't find a namespace: #{ namespace_name } " ) unless namespace_exists? ( namespace_name )
102
-
103
- tablebytes = table_name . to_java_bytes
104
- org . apache . hadoop . hbase . security . access . AccessControlClient . revoke (
105
- @connection , namespace_name , user
106
- )
102
+ if ( !family . nil? and isPermissionType? ( family ) )
103
+ permission = family [ 1 ...family . length -1 ]
104
+ perm = org . apache . hadoop . hbase . security . access . Permission . new (
105
+ permission . to_java_bytes
106
+ )
107
+ puts "revoke #{ permission } permission"
108
+ org . apache . hadoop . hbase . security . access . AccessControlClient . revoke (
109
+ @connection , namespace_name , user , perm . getActions
110
+ )
111
+ else
112
+ tablebytes = table_name . to_java_bytes
113
+ org . apache . hadoop . hbase . security . access . AccessControlClient . revoke (
114
+ @connection , namespace_name , user
115
+ )
116
+ end
107
117
else
108
118
# Table should exist
109
119
raise ( ArgumentError , "Can't find a table: #{ table_name } " ) unless exists? ( table_name )
@@ -181,6 +191,10 @@ def isNamespace?(table_name)
181
191
table_name . start_with? ( '@' )
182
192
end
183
193
194
+ def isPermissionType? ( permission_type )
195
+ permission_type . start_with? ( '{' )
196
+ end
197
+
184
198
def isTablePermission? ( permission )
185
199
permission . java_kind_of? ( org . apache . hadoop . hbase . security . access . TablePermission )
186
200
end
0 commit comments