auth: cleanup store.go

This commit is contained in:
Xiang Li 2016-06-10 14:19:29 -07:00
parent 65abcc1a59
commit f8c1a50195

View File

@ -353,20 +353,18 @@ func (as *authStore) UserRevokeRole(r *pb.AuthUserRevokeRoleRequest) (*pb.AuthUs
return nil, ErrUserNotFound return nil, ErrUserNotFound
} }
updatedUser := &authpb.User{} updatedUser := &authpb.User{
updatedUser.Name = user.Name Name: user.Name,
updatedUser.Password = user.Password Password: user.Password,
}
revoked := false
for _, role := range user.Roles { for _, role := range user.Roles {
if strings.Compare(role, r.Role) != 0 { if strings.Compare(role, r.Role) != 0 {
updatedUser.Roles = append(updatedUser.Roles, role) updatedUser.Roles = append(updatedUser.Roles, role)
} else {
revoked = true
} }
} }
if !revoked { if len(updatedUser.Roles) == len(user.Roles) {
return nil, ErrRoleNotGranted return nil, ErrRoleNotGranted
} }
@ -406,19 +404,17 @@ func (as *authStore) RoleRevokePermission(r *pb.AuthRoleRevokePermissionRequest)
return nil, ErrRoleNotFound return nil, ErrRoleNotFound
} }
updatedRole := &authpb.Role{} updatedRole := &authpb.Role{
updatedRole.Name = role.Name Name: role.Name,
}
revoked := false
for _, perm := range role.KeyPermission { for _, perm := range role.KeyPermission {
if !bytes.Equal(perm.Key, []byte(r.Key)) || !bytes.Equal(perm.RangeEnd, []byte(r.RangeEnd)) { if !bytes.Equal(perm.Key, []byte(r.Key)) || !bytes.Equal(perm.RangeEnd, []byte(r.RangeEnd)) {
updatedRole.KeyPermission = append(updatedRole.KeyPermission, perm) updatedRole.KeyPermission = append(updatedRole.KeyPermission, perm)
} else {
revoked = true
} }
} }
if !revoked { if len(role.KeyPermission) == len(updatedRole.KeyPermission) {
return nil, ErrPermissionNotGranted return nil, ErrPermissionNotGranted
} }