|
|
@@ -189,6 +189,28 @@ func (aa *authApplierV3) checkLeasePuts(leaseID lease.LeaseID) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+func (aa *authApplierV3) UserGet(r *pb.AuthUserGetRequest) (*pb.AuthUserGetResponse, error) {
|
|
|
+ err := aa.as.IsAdminPermitted(&aa.authInfo)
|
|
|
+ if err != nil && r.Name != aa.authInfo.Username {
|
|
|
+ aa.authInfo.Username = ""
|
|
|
+ aa.authInfo.Revision = 0
|
|
|
+ return &pb.AuthUserGetResponse{}, err
|
|
|
+ }
|
|
|
+
|
|
|
+ return aa.applierV3.UserGet(r)
|
|
|
+}
|
|
|
+
|
|
|
+func (aa *authApplierV3) RoleGet(r *pb.AuthRoleGetRequest) (*pb.AuthRoleGetResponse, error) {
|
|
|
+ err := aa.as.IsAdminPermitted(&aa.authInfo)
|
|
|
+ if err != nil && !aa.as.HasRole(aa.authInfo.Username, r.Role) {
|
|
|
+ aa.authInfo.Username = ""
|
|
|
+ aa.authInfo.Revision = 0
|
|
|
+ return &pb.AuthRoleGetResponse{}, err
|
|
|
+ }
|
|
|
+
|
|
|
+ return aa.applierV3.RoleGet(r)
|
|
|
+}
|
|
|
+
|
|
|
func needAdminPermission(r *pb.InternalRaftRequest) bool {
|
|
|
switch {
|
|
|
case r.AuthEnable != nil:
|
|
|
@@ -203,16 +225,12 @@ func needAdminPermission(r *pb.InternalRaftRequest) bool {
|
|
|
return true
|
|
|
case r.AuthUserGrantRole != nil:
|
|
|
return true
|
|
|
- case r.AuthUserGet != nil:
|
|
|
- return true
|
|
|
case r.AuthUserRevokeRole != nil:
|
|
|
return true
|
|
|
case r.AuthRoleAdd != nil:
|
|
|
return true
|
|
|
case r.AuthRoleGrantPermission != nil:
|
|
|
return true
|
|
|
- case r.AuthRoleGet != nil:
|
|
|
- return true
|
|
|
case r.AuthRoleRevokePermission != nil:
|
|
|
return true
|
|
|
case r.AuthRoleDelete != nil:
|