Skip to content

Commit 7a438be

Browse files
committed
chore: update user stats
1 parent e3a4f49 commit 7a438be

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

server/router/api/v1/user_service_stats.go

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,6 @@ import (
1515
)
1616

1717
func (s *APIV1Service) ListAllUserStats(ctx context.Context, _ *v1pb.ListAllUserStatsRequest) (*v1pb.ListAllUserStatsResponse, error) {
18-
currentUser, err := s.GetCurrentUser(ctx)
19-
if err != nil {
20-
return nil, status.Errorf(codes.Internal, "failed to get user: %v", err)
21-
}
22-
visibilities := []store.Visibility{store.Public}
23-
if currentUser != nil {
24-
visibilities = append(visibilities, store.Protected)
25-
}
26-
2718
workspaceMemoRelatedSetting, err := s.Store.GetWorkspaceMemoRelatedSetting(ctx)
2819
if err != nil {
2920
return nil, errors.Wrap(err, "failed to get workspace memo related setting")
@@ -34,9 +25,28 @@ func (s *APIV1Service) ListAllUserStats(ctx context.Context, _ *v1pb.ListAllUser
3425
// Exclude comments by default.
3526
ExcludeComments: true,
3627
ExcludeContent: true,
37-
VisibilityList: visibilities,
3828
RowStatus: &normalStatus,
3929
}
30+
31+
currentUser, err := s.GetCurrentUser(ctx)
32+
if err != nil {
33+
return nil, status.Errorf(codes.Internal, "failed to get user: %v", err)
34+
}
35+
if currentUser == nil {
36+
memoFind.VisibilityList = []store.Visibility{store.Public}
37+
} else {
38+
if memoFind.CreatorID == nil {
39+
internalFilter := fmt.Sprintf(`creator_id == %d || visibility in ["PUBLIC", "Protected"]`, currentUser.ID)
40+
if memoFind.Filter != nil {
41+
filter := fmt.Sprintf("(%s) && (%s)", *memoFind.Filter, internalFilter)
42+
memoFind.Filter = &filter
43+
} else {
44+
memoFind.Filter = &internalFilter
45+
}
46+
} else if *memoFind.CreatorID != currentUser.ID {
47+
memoFind.VisibilityList = []store.Visibility{store.Public, store.Protected}
48+
}
49+
}
4050
memos, err := s.Store.ListMemos(ctx, memoFind)
4151
if err != nil {
4252
return nil, status.Errorf(codes.Internal, "failed to list memos: %v", err)

0 commit comments

Comments
 (0)