GetCurrentUser implements localv1connect.LocalServiceHandler.
(ctx context.Context, r *connect.Request[localv1.GetCurrentUserRequest])
| 603 | |
| 604 | // GetCurrentUser implements localv1connect.LocalServiceHandler. |
| 605 | func (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. |
nothing calls this directly
no test coverage detected