MCPcopy Index your code
hub / github.com/rilldata/rill / GetCurrentUser

Method GetCurrentUser

cli/pkg/local/server.go:605–652  ·  view source on GitHub ↗

GetCurrentUser implements localv1connect.LocalServiceHandler.

(ctx context.Context, r *connect.Request[localv1.GetCurrentUserRequest])

Source from the content-addressed store, hash-verified

603
604// GetCurrentUser implements localv1connect.LocalServiceHandler.
605func (s *Server) GetCurrentUser(ctx context.Context, r *connect.Request[localv1.GetCurrentUserRequest]) (*connect.Response[localv1.GetCurrentUserResponse], error) {
606 if !s.app.ch.IsAuthenticated() {
607 return connect.NewResponse(&localv1.GetCurrentUserResponse{
608 User: nil,
609 }), nil
610 }
611
612 c, err := s.app.ch.Client()
613 if err != nil {
614 return nil, err
615 }
616
617 userResp, err := c.GetCurrentUser(ctx, &adminv1.GetCurrentUserRequest{})
618 if err != nil {
619 return nil, err
620 }
621 if userResp.User == nil {
622 return nil, errors.New("failed to get current user")
623 }
624
625 // get rill user orgs
626 resp, err := c.ListOrganizations(ctx, &adminv1.ListOrganizationsRequest{PageSize: 1000})
627 if err != nil {
628 return nil, err
629 }
630
631 userOrgs := make([]string, 0, len(resp.Organizations))
632 for _, org := range resp.Organizations {
633 userOrgs = append(userOrgs, org.Name)
634 }
635
636 representingUser, err := s.app.ch.DotRill.GetRepresentingUser()
637 if err != nil {
638 return nil, errors.New("failed to get assumed user email")
639 }
640 isRepresentingUser := representingUser != ""
641
642 return connect.NewResponse(&localv1.GetCurrentUserResponse{
643 User: &adminv1.User{
644 Id: userResp.User.Id,
645 Email: userResp.User.Email,
646 DisplayName: userResp.User.DisplayName,
647 PhotoUrl: userResp.User.PhotoUrl,
648 },
649 RillUserOrgs: userOrgs,
650 IsRepresentingUser: isRepresentingUser,
651 }), nil
652}
653
654// GetCurrentProject implements localv1connect.LocalServiceHandler.
655// Remove this endpoint once UI cleans up code referring to it.

Callers

nothing calls this directly

Calls 5

IsAuthenticatedMethod · 0.80
GetRepresentingUserMethod · 0.80
GetCurrentUserMethod · 0.65
ListOrganizationsMethod · 0.65
ClientMethod · 0.45

Tested by

no test coverage detected