5555import java .util .Collections ;
5656import java .util .HashMap ;
5757import java .util .List ;
58+ import java .util .Objects ;
5859import java .util .function .BiFunction ;
5960
6061public class PipeConfigTreePrivilegeParseVisitorTest {
@@ -134,6 +135,15 @@ public void testAuthPrivilege() {
134135 new AuthorTreePlan (ConfigPhysicalPlanType .RevokeRole ), FAKE_USER_ENTITY )
135136 .isPresent ());
136137
138+ permissionManager .setUserPrivilege ((userName , privilegeUnion ) -> false );
139+ AuthorTreePlan plan = new AuthorTreePlan (ConfigPhysicalPlanType .GrantUser );
140+ plan .setUserName ("" );
141+ Assert .assertTrue (skipVisitor .visitGrantUser (plan , FAKE_USER_ENTITY ).isPresent ());
142+ Assert .assertTrue (skipVisitor .visitRevokeUser (plan , FAKE_USER_ENTITY ).isPresent ());
143+ plan .setUserName ("another" );
144+ Assert .assertFalse (skipVisitor .visitGrantUser (plan , FAKE_USER_ENTITY ).isPresent ());
145+ Assert .assertFalse (skipVisitor .visitRevokeUser (plan , FAKE_USER_ENTITY ).isPresent ());
146+
137147 permissionManager .setUserPrivilege (
138148 (userName , privilegeUnion ) ->
139149 privilegeUnion .getPrivilegeType () == PrivilegeType .MANAGE_ROLE );
@@ -155,6 +165,15 @@ public void testAuthPrivilege() {
155165 .visitRevokeRole (
156166 new AuthorTreePlan (ConfigPhysicalPlanType .RevokeRole ), FAKE_USER_ENTITY )
157167 .isPresent ());
168+
169+ permissionManager .setUserPrivilege ((userName , privilegeUnion ) -> false );
170+ plan = new AuthorTreePlan (ConfigPhysicalPlanType .GrantUser );
171+ plan .setRoleName ("" );
172+ Assert .assertTrue (skipVisitor .visitGrantRole (plan , FAKE_USER_ENTITY ).isPresent ());
173+ Assert .assertTrue (skipVisitor .visitRevokeRole (plan , FAKE_USER_ENTITY ).isPresent ());
174+ plan .setRoleName ("another" );
175+ Assert .assertFalse (skipVisitor .visitGrantRole (plan , FAKE_USER_ENTITY ).isPresent ());
176+ Assert .assertFalse (skipVisitor .visitRevokeRole (plan , FAKE_USER_ENTITY ).isPresent ());
158177 }
159178
160179 @ Test
@@ -267,5 +286,12 @@ public PathPatternTree fetchRawAuthorizedPTree(
267286 tree .constructTree ();
268287 return tree ;
269288 }
289+
290+ @ Override
291+ public TPermissionInfoResp checkRoleOfUser (String username , String rolename ) {
292+ return Objects .equals (username , rolename )
293+ ? new TPermissionInfoResp (StatusUtils .OK )
294+ : new TPermissionInfoResp (new TSStatus (TSStatusCode .USER_NOT_HAS_ROLE .getStatusCode ()));
295+ }
270296 }
271297}
0 commit comments