diff --git a/.github/workflows/server-test.yml b/.github/workflows/server-test.yml index 8c489060..3fcb1754 100644 --- a/.github/workflows/server-test.yml +++ b/.github/workflows/server-test.yml @@ -110,7 +110,7 @@ jobs: if: needs.detect-noop.outputs.noop != 'true' strategy: matrix: - k8s-version: ["v1.21", "v1.26"] + k8s-version: ["v1.26"] concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.k8s-version }} cancel-in-progress: true diff --git a/pkg/server/domain/service/authentication.go b/pkg/server/domain/service/authentication.go index c505041d..09daef96 100644 --- a/pkg/server/domain/service/authentication.go +++ b/pkg/server/domain/service/authentication.go @@ -449,6 +449,14 @@ func (a *authenticationServiceImpl) GetLoginType(ctx context.Context) (*apisv1.G }, nil } +func getUserName(sub string) string { + username := strings.ToLower(sub) + if len(sub) > datastore.PrimaryKeyMaxLength { + return sub[:datastore.PrimaryKeyMaxLength] + } + return username +} + func (d *dexHandlerImpl) login(ctx context.Context) (*apisv1.UserBase, error) { var claims struct { Email string `json:"email"` @@ -492,14 +500,8 @@ func (d *dexHandlerImpl) login(ctx context.Context) (*apisv1.UserBase, error) { klog.Errorf("failed to get the system info %s", err.Error()) } user := &model.User{ - Email: claims.Email, - Name: func() string { - sub := strings.ToLower(claims.Sub) - if len(sub) > datastore.PrimaryKeyMaxLength { - return sub[:datastore.PrimaryKeyMaxLength] - } - return sub - }(), + Email: claims.Email, + Name: getUserName(claims.Sub), DexSub: claims.Sub, Alias: claims.Name, LastLoginTime: time.Now(), @@ -514,7 +516,7 @@ func (d *dexHandlerImpl) login(ctx context.Context) (*apisv1.UserBase, error) { if systemInfo != nil { for _, project := range systemInfo.DexUserDefaultProjects { _, err := d.projectService.AddProjectUser(ctx, project.Name, apisv1.AddProjectUserRequest{ - UserName: strings.ToLower(claims.Sub), + UserName: getUserName(claims.Sub), UserRoles: project.Roles, }) if err != nil {