Skip to content

Commit 66ad42c

Browse files
authored
HBASE-22879 user_permission command failed to show global permission (#511)
1 parent ab28f9d commit 66ad42c

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

hbase-shell/src/main/ruby/hbase/security.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ def user_permission(table_regex = nil)
150150
if !table_regex.nil? && isNamespace?(table_regex)
151151
nsPerm = permission.to_java(org.apache.hadoop.hbase.security.access.NamespacePermission)
152152
namespace = nsPerm.getNamespace
153-
else
153+
elsif !table_regex.nil?
154154
tblPerm = permission.to_java(org.apache.hadoop.hbase.security.access.TablePermission)
155155
namespace = tblPerm.getNamespace
156156
table = !tblPerm.getTableName.nil? ? tblPerm.getTableName.getNameAsString : ''

hbase-shell/src/test/java/org/apache/hadoop/hbase/client/TestShell.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class TestShell extends AbstractTestShell {
3535
@Test
3636
public void testRunShellTests() throws IOException {
3737
System.setProperty("shell.test.exclude", "replication_admin_test.rb,rsgroup_shell_test.rb," +
38-
"admin_test.rb,table_test.rb,quotas_test.rb");
38+
"admin_test.rb,table_test.rb,quotas_test.rb,admin2_test.rb");
3939
// Start all ruby tests
4040
jruby.runScriptlet(PathType.ABSOLUTE, "src/test/ruby/tests_runner.rb");
4141
}

hbase-shell/src/test/ruby/hbase/security_admin_test.rb

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,5 +78,25 @@ def teardown
7878
end
7979
assert(found_permission, "Permission for user test_grant_revoke was not found.")
8080
end
81+
82+
define_test 'Grant and revoke global permission should set access rights appropriately' do
83+
global_user_name = 'test_grant_revoke_global'
84+
security_admin.grant(global_user_name, 'W')
85+
found_permission = false
86+
security_admin.user_permission do |user, permission|
87+
if user == global_user_name
88+
assert_match(/WRITE/, permission.to_s)
89+
found_permission = true
90+
end
91+
end
92+
assert(found_permission, 'Permission for user ' + global_user_name + ' was not found.')
93+
94+
found_permission = false
95+
security_admin.revoke(global_user_name)
96+
security_admin.user_permission do |user, _|
97+
found_permission = true if user == global_user_name
98+
end
99+
assert(!found_permission, 'Permission for user ' + global_user_name + ' was found.')
100+
end
81101
end
82102
end

0 commit comments

Comments
 (0)