From fff42ebc0d73f3d4e404dcae1fe8be789ebe949a Mon Sep 17 00:00:00 2001 From: Steven Date: Thu, 30 Nov 2023 21:52:02 +0800 Subject: [PATCH] fix: check auth status --- api/v2/auth_service.go | 10 +- proto/api/v2/auth_service.proto | 3 +- proto/gen/api/v2/README.md | 856 ++++++++++++++-------------- proto/gen/api/v2/auth_service.pb.go | 82 +-- web/src/store/module/user.ts | 12 +- 5 files changed, 486 insertions(+), 477 deletions(-) diff --git a/api/v2/auth_service.go b/api/v2/auth_service.go index 6e7419acb..4f9cb4410 100644 --- a/api/v2/auth_service.go +++ b/api/v2/auth_service.go @@ -3,16 +3,18 @@ package v2 import ( "context" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + apiv2pb "github.com/usememos/memos/proto/gen/api/v2" ) func (s *APIV2Service) GetAuthStatus(ctx context.Context, _ *apiv2pb.GetAuthStatusRequest) (*apiv2pb.GetAuthStatusResponse, error) { - ok := true user, err := getCurrentUser(ctx, s.Store) - if err != nil || user == nil { - ok = false + if err != nil { + return nil, status.Errorf(codes.Unauthenticated, "failed to get current user: %v", err) } return &apiv2pb.GetAuthStatusResponse{ - Ok: ok, + User: convertUserFromStore(user), }, nil } diff --git a/proto/api/v2/auth_service.proto b/proto/api/v2/auth_service.proto index f11ee6f80..6fb9dd7d2 100644 --- a/proto/api/v2/auth_service.proto +++ b/proto/api/v2/auth_service.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package memos.api.v2; +import "api/v2/user_service.proto"; import "google/api/annotations.proto"; option go_package = "gen/api/v2"; @@ -15,5 +16,5 @@ service AuthService { message GetAuthStatusRequest {} message GetAuthStatusResponse { - bool ok = 1; + User user = 1; } diff --git a/proto/gen/api/v2/README.md b/proto/gen/api/v2/README.md index 9db9aa8ee..ca96996d3 100644 --- a/proto/gen/api/v2/README.md +++ b/proto/gen/api/v2/README.md @@ -13,15 +13,37 @@ - [ActivityService](#memos-api-v2-ActivityService) +- [api/v2/common.proto](#api_v2_common-proto) + - [RowStatus](#memos-api-v2-RowStatus) + +- [api/v2/user_service.proto](#api_v2_user_service-proto) + - [CreateUserAccessTokenRequest](#memos-api-v2-CreateUserAccessTokenRequest) + - [CreateUserAccessTokenResponse](#memos-api-v2-CreateUserAccessTokenResponse) + - [CreateUserRequest](#memos-api-v2-CreateUserRequest) + - [CreateUserResponse](#memos-api-v2-CreateUserResponse) + - [DeleteUserAccessTokenRequest](#memos-api-v2-DeleteUserAccessTokenRequest) + - [DeleteUserAccessTokenResponse](#memos-api-v2-DeleteUserAccessTokenResponse) + - [DeleteUserRequest](#memos-api-v2-DeleteUserRequest) + - [DeleteUserResponse](#memos-api-v2-DeleteUserResponse) + - [GetUserRequest](#memos-api-v2-GetUserRequest) + - [GetUserResponse](#memos-api-v2-GetUserResponse) + - [ListUserAccessTokensRequest](#memos-api-v2-ListUserAccessTokensRequest) + - [ListUserAccessTokensResponse](#memos-api-v2-ListUserAccessTokensResponse) + - [UpdateUserRequest](#memos-api-v2-UpdateUserRequest) + - [UpdateUserResponse](#memos-api-v2-UpdateUserResponse) + - [User](#memos-api-v2-User) + - [UserAccessToken](#memos-api-v2-UserAccessToken) + + - [User.Role](#memos-api-v2-User-Role) + + - [UserService](#memos-api-v2-UserService) + - [api/v2/auth_service.proto](#api_v2_auth_service-proto) - [GetAuthStatusRequest](#memos-api-v2-GetAuthStatusRequest) - [GetAuthStatusResponse](#memos-api-v2-GetAuthStatusResponse) - [AuthService](#memos-api-v2-AuthService) -- [api/v2/common.proto](#api_v2_common-proto) - - [RowStatus](#memos-api-v2-RowStatus) - - [api/v2/inbox_service.proto](#api_v2_inbox_service-proto) - [DeleteInboxRequest](#memos-api-v2-DeleteInboxRequest) - [DeleteInboxResponse](#memos-api-v2-DeleteInboxResponse) @@ -88,28 +110,6 @@ - [TagService](#memos-api-v2-TagService) -- [api/v2/user_service.proto](#api_v2_user_service-proto) - - [CreateUserAccessTokenRequest](#memos-api-v2-CreateUserAccessTokenRequest) - - [CreateUserAccessTokenResponse](#memos-api-v2-CreateUserAccessTokenResponse) - - [CreateUserRequest](#memos-api-v2-CreateUserRequest) - - [CreateUserResponse](#memos-api-v2-CreateUserResponse) - - [DeleteUserAccessTokenRequest](#memos-api-v2-DeleteUserAccessTokenRequest) - - [DeleteUserAccessTokenResponse](#memos-api-v2-DeleteUserAccessTokenResponse) - - [DeleteUserRequest](#memos-api-v2-DeleteUserRequest) - - [DeleteUserResponse](#memos-api-v2-DeleteUserResponse) - - [GetUserRequest](#memos-api-v2-GetUserRequest) - - [GetUserResponse](#memos-api-v2-GetUserResponse) - - [ListUserAccessTokensRequest](#memos-api-v2-ListUserAccessTokensRequest) - - [ListUserAccessTokensResponse](#memos-api-v2-ListUserAccessTokensResponse) - - [UpdateUserRequest](#memos-api-v2-UpdateUserRequest) - - [UpdateUserResponse](#memos-api-v2-UpdateUserResponse) - - [User](#memos-api-v2-User) - - [UserAccessToken](#memos-api-v2-UserAccessToken) - - - [User.Role](#memos-api-v2-User-Role) - - - [UserService](#memos-api-v2-UserService) - - [api/v2/webhook_service.proto](#api_v2_webhook_service-proto) - [CreateWebhookRequest](#memos-api-v2-CreateWebhookRequest) - [CreateWebhookResponse](#memos-api-v2-CreateWebhookResponse) @@ -252,57 +252,6 @@ - -

Top

- -## api/v2/auth_service.proto - - - - - -### GetAuthStatusRequest - - - - - - - - - -### GetAuthStatusResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| ok | [bool](#bool) | | | - - - - - - - - - - - - - - -### AuthService - - -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| GetAuthStatus | [GetAuthStatusRequest](#memos-api-v2-GetAuthStatusRequest) | [GetAuthStatusResponse](#memos-api-v2-GetAuthStatusResponse) | | - - - - -

Top

@@ -332,630 +281,688 @@ - +

Top

-## api/v2/inbox_service.proto +## api/v2/user_service.proto - + -### DeleteInboxRequest +### CreateUserAccessTokenRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| name | [string](#string) | | The name of the inbox to delete. Format: inboxes/{inbox} | +| name | [string](#string) | | The name of the user. Format: users/{username} | +| description | [string](#string) | | | +| expires_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | optional | | - + -### DeleteInboxResponse +### CreateUserAccessTokenResponse +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| access_token | [UserAccessToken](#memos-api-v2-UserAccessToken) | | | - -### Inbox + + + +### CreateUserRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| name | [string](#string) | | The name of the inbox. Format: inboxes/{id} | -| sender | [string](#string) | | Format: users/{username} | -| receiver | [string](#string) | | Format: users/{username} | -| status | [Inbox.Status](#memos-api-v2-Inbox-Status) | | | -| create_time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | -| type | [Inbox.Type](#memos-api-v2-Inbox-Type) | | | -| activity_id | [int32](#int32) | optional | | +| user | [User](#memos-api-v2-User) | | | - + -### ListInboxesRequest +### CreateUserResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| user | [string](#string) | | Format: users/{username} | +| user | [User](#memos-api-v2-User) | | | - + -### ListInboxesResponse +### DeleteUserAccessTokenRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| inboxes | [Inbox](#memos-api-v2-Inbox) | repeated | | - - +| name | [string](#string) | | The name of the user. Format: users/{username} | +| access_token | [string](#string) | | access_token is the access token to delete. | - -### UpdateInboxRequest + +### DeleteUserAccessTokenResponse -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| inbox | [Inbox](#memos-api-v2-Inbox) | | | -| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | | - + -### UpdateInboxResponse +### DeleteUserRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| inbox | [Inbox](#memos-api-v2-Inbox) | | | +| name | [string](#string) | | The name of the user. Format: users/{username} | - + - +### DeleteUserResponse -### Inbox.Status -| Name | Number | Description | -| ---- | ------ | ----------- | -| STATUS_UNSPECIFIED | 0 | | -| UNREAD | 1 | | -| ARCHIVED | 2 | | - -### Inbox.Type + +### GetUserRequest -| Name | Number | Description | -| ---- | ------ | ----------- | -| TYPE_UNSPECIFIED | 0 | | -| TYPE_MEMO_COMMENT | 1 | | -| TYPE_VERSION_UPDATE | 2 | | - +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| name | [string](#string) | | The name of the user. Format: users/{username} | - - -### InboxService -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| ListInboxes | [ListInboxesRequest](#memos-api-v2-ListInboxesRequest) | [ListInboxesResponse](#memos-api-v2-ListInboxesResponse) | | -| UpdateInbox | [UpdateInboxRequest](#memos-api-v2-UpdateInboxRequest) | [UpdateInboxResponse](#memos-api-v2-UpdateInboxResponse) | | -| DeleteInbox | [DeleteInboxRequest](#memos-api-v2-DeleteInboxRequest) | [DeleteInboxResponse](#memos-api-v2-DeleteInboxResponse) | | + - +### GetUserResponse - -

Top

+| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| user | [User](#memos-api-v2-User) | | | -## api/v2/memo_service.proto - -### CreateMemoCommentRequest + + + +### ListUserAccessTokensRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| id | [int32](#int32) | | id is the memo id to create comment for. | -| create | [CreateMemoRequest](#memos-api-v2-CreateMemoRequest) | | | +| name | [string](#string) | | The name of the user. Format: users/{username} | - + -### CreateMemoCommentResponse +### ListUserAccessTokensResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| memo | [Memo](#memos-api-v2-Memo) | | | +| access_tokens | [UserAccessToken](#memos-api-v2-UserAccessToken) | repeated | | - + -### CreateMemoRequest +### UpdateUserRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| content | [string](#string) | | | -| visibility | [Visibility](#memos-api-v2-Visibility) | | | +| user | [User](#memos-api-v2-User) | | | +| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | | - + -### CreateMemoResponse +### UpdateUserResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| memo | [Memo](#memos-api-v2-Memo) | | | +| user | [User](#memos-api-v2-User) | | | - + -### GetMemoRequest +### User | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | +| name | [string](#string) | | The name of the user. Format: users/{username} | | id | [int32](#int32) | | | +| role | [User.Role](#memos-api-v2-User-Role) | | | +| email | [string](#string) | | | +| nickname | [string](#string) | | | +| avatar_url | [string](#string) | | | +| password | [string](#string) | | | +| row_status | [RowStatus](#memos-api-v2-RowStatus) | | | +| create_time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | +| update_time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | - + -### GetMemoResponse +### UserAccessToken | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| memo | [Memo](#memos-api-v2-Memo) | | | +| access_token | [string](#string) | | | +| description | [string](#string) | | | +| issued_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | +| expires_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | + - -### ListMemoCommentsRequest + +### User.Role -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| id | [int32](#int32) | | | +| Name | Number | Description | +| ---- | ------ | ----------- | +| ROLE_UNSPECIFIED | 0 | | +| HOST | 1 | | +| ADMIN | 2 | | +| USER | 3 | | + + + - +### UserService -### ListMemoCommentsResponse +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| GetUser | [GetUserRequest](#memos-api-v2-GetUserRequest) | [GetUserResponse](#memos-api-v2-GetUserResponse) | GetUser gets a user by name. | +| CreateUser | [CreateUserRequest](#memos-api-v2-CreateUserRequest) | [CreateUserResponse](#memos-api-v2-CreateUserResponse) | CreateUser creates a new user. | +| UpdateUser | [UpdateUserRequest](#memos-api-v2-UpdateUserRequest) | [UpdateUserResponse](#memos-api-v2-UpdateUserResponse) | UpdateUser updates a user. | +| DeleteUser | [DeleteUserRequest](#memos-api-v2-DeleteUserRequest) | [DeleteUserResponse](#memos-api-v2-DeleteUserResponse) | DeleteUser deletes a user. | +| ListUserAccessTokens | [ListUserAccessTokensRequest](#memos-api-v2-ListUserAccessTokensRequest) | [ListUserAccessTokensResponse](#memos-api-v2-ListUserAccessTokensResponse) | ListUserAccessTokens returns a list of access tokens for a user. | +| CreateUserAccessToken | [CreateUserAccessTokenRequest](#memos-api-v2-CreateUserAccessTokenRequest) | [CreateUserAccessTokenResponse](#memos-api-v2-CreateUserAccessTokenResponse) | CreateUserAccessToken creates a new access token for a user. | +| DeleteUserAccessToken | [DeleteUserAccessTokenRequest](#memos-api-v2-DeleteUserAccessTokenRequest) | [DeleteUserAccessTokenResponse](#memos-api-v2-DeleteUserAccessTokenResponse) | DeleteUserAccessToken deletes an access token for a user. | + -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| memos | [Memo](#memos-api-v2-Memo) | repeated | | + +

Top

+ +## api/v2/auth_service.proto + + + + + +### GetAuthStatusRequest + - -### ListMemosRequest + + + +### GetAuthStatusResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| page | [int32](#int32) | | | -| page_size | [int32](#int32) | | | -| filter | [string](#string) | | Filter is used to filter memos returned in the list. | -| creator_id | [int32](#int32) | optional | | +| user | [User](#memos-api-v2-User) | | | + - + -### ListMemosResponse + + -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| memos | [Memo](#memos-api-v2-Memo) | repeated | | +### AuthService +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| GetAuthStatus | [GetAuthStatusRequest](#memos-api-v2-GetAuthStatusRequest) | [GetAuthStatusResponse](#memos-api-v2-GetAuthStatusResponse) | | + - + +

Top

-### Memo +## api/v2/inbox_service.proto + + + + + +### DeleteInboxRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| id | [int32](#int32) | | | -| row_status | [RowStatus](#memos-api-v2-RowStatus) | | | -| creator_id | [int32](#int32) | | | -| created_ts | [int64](#int64) | | | -| updated_ts | [int64](#int64) | | | -| content | [string](#string) | | | -| visibility | [Visibility](#memos-api-v2-Visibility) | | | -| pinned | [bool](#bool) | | | +| name | [string](#string) | | The name of the inbox to delete. Format: inboxes/{inbox} | - + - +### DeleteInboxResponse -### Visibility -| Name | Number | Description | -| ---- | ------ | ----------- | -| VISIBILITY_UNSPECIFIED | 0 | | -| PRIVATE | 1 | | -| PROTECTED | 2 | | -| PUBLIC | 3 | | - - + - +### Inbox -### MemoService -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| CreateMemo | [CreateMemoRequest](#memos-api-v2-CreateMemoRequest) | [CreateMemoResponse](#memos-api-v2-CreateMemoResponse) | | -| ListMemos | [ListMemosRequest](#memos-api-v2-ListMemosRequest) | [ListMemosResponse](#memos-api-v2-ListMemosResponse) | | -| GetMemo | [GetMemoRequest](#memos-api-v2-GetMemoRequest) | [GetMemoResponse](#memos-api-v2-GetMemoResponse) | | -| CreateMemoComment | [CreateMemoCommentRequest](#memos-api-v2-CreateMemoCommentRequest) | [CreateMemoCommentResponse](#memos-api-v2-CreateMemoCommentResponse) | | -| ListMemoComments | [ListMemoCommentsRequest](#memos-api-v2-ListMemoCommentsRequest) | [ListMemoCommentsResponse](#memos-api-v2-ListMemoCommentsResponse) | | +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| name | [string](#string) | | The name of the inbox. Format: inboxes/{id} | +| sender | [string](#string) | | Format: users/{username} | +| receiver | [string](#string) | | Format: users/{username} | +| status | [Inbox.Status](#memos-api-v2-Inbox-Status) | | | +| create_time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | +| type | [Inbox.Type](#memos-api-v2-Inbox-Type) | | | +| activity_id | [int32](#int32) | optional | | - - -

Top

-## api/v2/resource_service.proto + + +### ListInboxesRequest - -### CreateResourceRequest +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| user | [string](#string) | | Format: users/{username} | + + + + + + + + +### ListInboxesResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| filename | [string](#string) | | | -| external_link | [string](#string) | | | -| type | [string](#string) | | | -| memo_id | [int32](#int32) | optional | | +| inboxes | [Inbox](#memos-api-v2-Inbox) | repeated | | - + -### CreateResourceResponse +### UpdateInboxRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| resource | [Resource](#memos-api-v2-Resource) | | | +| inbox | [Inbox](#memos-api-v2-Inbox) | | | +| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | | - + -### DeleteResourceRequest +### UpdateInboxResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| id | [int32](#int32) | | | +| inbox | [Inbox](#memos-api-v2-Inbox) | | | + - -### DeleteResourceResponse + +### Inbox.Status +| Name | Number | Description | +| ---- | ------ | ----------- | +| STATUS_UNSPECIFIED | 0 | | +| UNREAD | 1 | | +| ARCHIVED | 2 | | + - +### Inbox.Type -### ListResourcesRequest +| Name | Number | Description | +| ---- | ------ | ----------- | +| TYPE_UNSPECIFIED | 0 | | +| TYPE_MEMO_COMMENT | 1 | | +| TYPE_VERSION_UPDATE | 2 | | + + + - +### InboxService -### ListResourcesResponse + +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| ListInboxes | [ListInboxesRequest](#memos-api-v2-ListInboxesRequest) | [ListInboxesResponse](#memos-api-v2-ListInboxesResponse) | | +| UpdateInbox | [UpdateInboxRequest](#memos-api-v2-UpdateInboxRequest) | [UpdateInboxResponse](#memos-api-v2-UpdateInboxResponse) | | +| DeleteInbox | [DeleteInboxRequest](#memos-api-v2-DeleteInboxRequest) | [DeleteInboxResponse](#memos-api-v2-DeleteInboxResponse) | | + + + + + + +

Top

+ +## api/v2/memo_service.proto + + + + + +### CreateMemoCommentRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| resources | [Resource](#memos-api-v2-Resource) | repeated | | +| id | [int32](#int32) | | id is the memo id to create comment for. | +| create | [CreateMemoRequest](#memos-api-v2-CreateMemoRequest) | | | - + -### Resource +### CreateMemoCommentResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| id | [int32](#int32) | | | -| created_ts | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | -| filename | [string](#string) | | | -| external_link | [string](#string) | | | -| type | [string](#string) | | | -| size | [int64](#int64) | | | -| memo_id | [int32](#int32) | optional | | +| memo | [Memo](#memos-api-v2-Memo) | | | - + -### UpdateResourceRequest +### CreateMemoRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| resource | [Resource](#memos-api-v2-Resource) | | | -| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | | +| content | [string](#string) | | | +| visibility | [Visibility](#memos-api-v2-Visibility) | | | - + -### UpdateResourceResponse +### CreateMemoResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| resource | [Resource](#memos-api-v2-Resource) | | | +| memo | [Memo](#memos-api-v2-Memo) | | | - - + - +### GetMemoRequest - -### ResourceService +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [int32](#int32) | | | -| Method Name | Request Type | Response Type | Description | -| ----------- | ------------ | ------------- | ------------| -| CreateResource | [CreateResourceRequest](#memos-api-v2-CreateResourceRequest) | [CreateResourceResponse](#memos-api-v2-CreateResourceResponse) | | -| ListResources | [ListResourcesRequest](#memos-api-v2-ListResourcesRequest) | [ListResourcesResponse](#memos-api-v2-ListResourcesResponse) | | -| UpdateResource | [UpdateResourceRequest](#memos-api-v2-UpdateResourceRequest) | [UpdateResourceResponse](#memos-api-v2-UpdateResourceResponse) | | -| DeleteResource | [DeleteResourceRequest](#memos-api-v2-DeleteResourceRequest) | [DeleteResourceResponse](#memos-api-v2-DeleteResourceResponse) | | - - -

Top

+ -## api/v2/system_service.proto +### GetMemoResponse - +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| memo | [Memo](#memos-api-v2-Memo) | | | -### GetSystemInfoRequest + +### ListMemoCommentsRequest - -### GetSystemInfoResponse + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [int32](#int32) | | | + + + + + + + + +### ListMemoCommentsResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| system_info | [SystemInfo](#memos-api-v2-SystemInfo) | | | +| memos | [Memo](#memos-api-v2-Memo) | repeated | | - + -### SystemInfo +### ListMemosRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| version | [string](#string) | | | -| mode | [string](#string) | | | -| allow_registration | [bool](#bool) | | | -| disable_password_login | [bool](#bool) | | | -| additional_script | [string](#string) | | | -| additional_style | [string](#string) | | | -| db_size | [int64](#int64) | | | +| page | [int32](#int32) | | | +| page_size | [int32](#int32) | | | +| filter | [string](#string) | | Filter is used to filter memos returned in the list. | +| creator_id | [int32](#int32) | optional | | - + -### UpdateSystemInfoRequest +### ListMemosResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| system_info | [SystemInfo](#memos-api-v2-SystemInfo) | | System info is the updated data. | -| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | | +| memos | [Memo](#memos-api-v2-Memo) | repeated | | - + -### UpdateSystemInfoResponse +### Memo | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| system_info | [SystemInfo](#memos-api-v2-SystemInfo) | | | +| id | [int32](#int32) | | | +| row_status | [RowStatus](#memos-api-v2-RowStatus) | | | +| creator_id | [int32](#int32) | | | +| created_ts | [int64](#int64) | | | +| updated_ts | [int64](#int64) | | | +| content | [string](#string) | | | +| visibility | [Visibility](#memos-api-v2-Visibility) | | | +| pinned | [bool](#bool) | | | @@ -963,157 +970,178 @@ + + + +### Visibility + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| VISIBILITY_UNSPECIFIED | 0 | | +| PRIVATE | 1 | | +| PROTECTED | 2 | | +| PUBLIC | 3 | | + + - + -### SystemService +### MemoService | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| -| GetSystemInfo | [GetSystemInfoRequest](#memos-api-v2-GetSystemInfoRequest) | [GetSystemInfoResponse](#memos-api-v2-GetSystemInfoResponse) | | -| UpdateSystemInfo | [UpdateSystemInfoRequest](#memos-api-v2-UpdateSystemInfoRequest) | [UpdateSystemInfoResponse](#memos-api-v2-UpdateSystemInfoResponse) | | +| CreateMemo | [CreateMemoRequest](#memos-api-v2-CreateMemoRequest) | [CreateMemoResponse](#memos-api-v2-CreateMemoResponse) | | +| ListMemos | [ListMemosRequest](#memos-api-v2-ListMemosRequest) | [ListMemosResponse](#memos-api-v2-ListMemosResponse) | | +| GetMemo | [GetMemoRequest](#memos-api-v2-GetMemoRequest) | [GetMemoResponse](#memos-api-v2-GetMemoResponse) | | +| CreateMemoComment | [CreateMemoCommentRequest](#memos-api-v2-CreateMemoCommentRequest) | [CreateMemoCommentResponse](#memos-api-v2-CreateMemoCommentResponse) | | +| ListMemoComments | [ListMemoCommentsRequest](#memos-api-v2-ListMemoCommentsRequest) | [ListMemoCommentsResponse](#memos-api-v2-ListMemoCommentsResponse) | | - +

Top

-## api/v2/tag_service.proto +## api/v2/resource_service.proto - + -### DeleteTagRequest +### CreateResourceRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| tag | [Tag](#memos-api-v2-Tag) | | | - - +| filename | [string](#string) | | | +| external_link | [string](#string) | | | +| type | [string](#string) | | | +| memo_id | [int32](#int32) | optional | | - -### DeleteTagResponse + +### CreateResourceResponse +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| resource | [Resource](#memos-api-v2-Resource) | | | - -### GetTagSuggestionsRequest -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| user | [string](#string) | | The creator of tags. Format: users/{username} | + +### DeleteResourceRequest +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [int32](#int32) | | | - -### GetTagSuggestionsResponse -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| tags | [string](#string) | repeated | | + +### DeleteResourceResponse - -### ListTagsRequest + +### ListResourcesRequest -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| user | [string](#string) | | The creator of tags. Format: users/{username} | - + -### ListTagsResponse +### ListResourcesResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| tags | [Tag](#memos-api-v2-Tag) | repeated | | +| resources | [Resource](#memos-api-v2-Resource) | repeated | | - + -### Tag +### Resource | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| name | [string](#string) | | | -| creator | [string](#string) | | The creator of tags. Format: users/{username} | +| id | [int32](#int32) | | | +| created_ts | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | +| filename | [string](#string) | | | +| external_link | [string](#string) | | | +| type | [string](#string) | | | +| size | [int64](#int64) | | | +| memo_id | [int32](#int32) | optional | | - + -### UpsertTagRequest +### UpdateResourceRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| name | [string](#string) | | | +| resource | [Resource](#memos-api-v2-Resource) | | | +| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | | - + -### UpsertTagResponse +### UpdateResourceResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| tag | [Tag](#memos-api-v2-Tag) | | | +| resource | [Resource](#memos-api-v2-Resource) | | | @@ -1126,269 +1154,258 @@ - + -### TagService +### ResourceService | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| -| UpsertTag | [UpsertTagRequest](#memos-api-v2-UpsertTagRequest) | [UpsertTagResponse](#memos-api-v2-UpsertTagResponse) | | -| ListTags | [ListTagsRequest](#memos-api-v2-ListTagsRequest) | [ListTagsResponse](#memos-api-v2-ListTagsResponse) | | -| DeleteTag | [DeleteTagRequest](#memos-api-v2-DeleteTagRequest) | [DeleteTagResponse](#memos-api-v2-DeleteTagResponse) | | -| GetTagSuggestions | [GetTagSuggestionsRequest](#memos-api-v2-GetTagSuggestionsRequest) | [GetTagSuggestionsResponse](#memos-api-v2-GetTagSuggestionsResponse) | | +| CreateResource | [CreateResourceRequest](#memos-api-v2-CreateResourceRequest) | [CreateResourceResponse](#memos-api-v2-CreateResourceResponse) | | +| ListResources | [ListResourcesRequest](#memos-api-v2-ListResourcesRequest) | [ListResourcesResponse](#memos-api-v2-ListResourcesResponse) | | +| UpdateResource | [UpdateResourceRequest](#memos-api-v2-UpdateResourceRequest) | [UpdateResourceResponse](#memos-api-v2-UpdateResourceResponse) | | +| DeleteResource | [DeleteResourceRequest](#memos-api-v2-DeleteResourceRequest) | [DeleteResourceResponse](#memos-api-v2-DeleteResourceResponse) | | - +

Top

-## api/v2/user_service.proto - - +## api/v2/system_service.proto - -### CreateUserAccessTokenRequest + +### GetSystemInfoRequest -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| name | [string](#string) | | The name of the user. Format: users/{username} | -| description | [string](#string) | | | -| expires_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | optional | | - + -### CreateUserAccessTokenResponse +### GetSystemInfoResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| access_token | [UserAccessToken](#memos-api-v2-UserAccessToken) | | | +| system_info | [SystemInfo](#memos-api-v2-SystemInfo) | | | - + -### CreateUserRequest +### SystemInfo | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| user | [User](#memos-api-v2-User) | | | +| version | [string](#string) | | | +| mode | [string](#string) | | | +| allow_registration | [bool](#bool) | | | +| disable_password_login | [bool](#bool) | | | +| additional_script | [string](#string) | | | +| additional_style | [string](#string) | | | +| db_size | [int64](#int64) | | | - + -### CreateUserResponse +### UpdateSystemInfoRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| user | [User](#memos-api-v2-User) | | | +| system_info | [SystemInfo](#memos-api-v2-SystemInfo) | | System info is the updated data. | +| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | | - + -### DeleteUserAccessTokenRequest +### UpdateSystemInfoResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| name | [string](#string) | | The name of the user. Format: users/{username} | -| access_token | [string](#string) | | access_token is the access token to delete. | - - - - +| system_info | [SystemInfo](#memos-api-v2-SystemInfo) | | | - -### DeleteUserAccessTokenResponse + + + + - +### SystemService -### DeleteUserRequest +| Method Name | Request Type | Response Type | Description | +| ----------- | ------------ | ------------- | ------------| +| GetSystemInfo | [GetSystemInfoRequest](#memos-api-v2-GetSystemInfoRequest) | [GetSystemInfoResponse](#memos-api-v2-GetSystemInfoResponse) | | +| UpdateSystemInfo | [UpdateSystemInfoRequest](#memos-api-v2-UpdateSystemInfoRequest) | [UpdateSystemInfoResponse](#memos-api-v2-UpdateSystemInfoResponse) | | + -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| name | [string](#string) | | The name of the user. Format: users/{username} | + +

Top

+## api/v2/tag_service.proto - + -### DeleteUserResponse +### DeleteTagRequest +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| tag | [Tag](#memos-api-v2-Tag) | | | - -### GetUserRequest + +### DeleteTagResponse -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| name | [string](#string) | | The name of the user. Format: users/{username} | - + -### GetUserResponse +### GetTagSuggestionsRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| user | [User](#memos-api-v2-User) | | | +| user | [string](#string) | | The creator of tags. Format: users/{username} | - + -### ListUserAccessTokensRequest +### GetTagSuggestionsResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| name | [string](#string) | | The name of the user. Format: users/{username} | +| tags | [string](#string) | repeated | | - + -### ListUserAccessTokensResponse +### ListTagsRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| access_tokens | [UserAccessToken](#memos-api-v2-UserAccessToken) | repeated | | +| user | [string](#string) | | The creator of tags. Format: users/{username} | - + -### UpdateUserRequest +### ListTagsResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| user | [User](#memos-api-v2-User) | | | -| update_mask | [google.protobuf.FieldMask](#google-protobuf-FieldMask) | | | +| tags | [Tag](#memos-api-v2-Tag) | repeated | | - + -### UpdateUserResponse +### Tag | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| user | [User](#memos-api-v2-User) | | | +| name | [string](#string) | | | +| creator | [string](#string) | | The creator of tags. Format: users/{username} | - + -### User +### UpsertTagRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| name | [string](#string) | | The name of the user. Format: users/{username} | -| id | [int32](#int32) | | | -| role | [User.Role](#memos-api-v2-User-Role) | | | -| email | [string](#string) | | | -| nickname | [string](#string) | | | -| avatar_url | [string](#string) | | | -| password | [string](#string) | | | -| row_status | [RowStatus](#memos-api-v2-RowStatus) | | | -| create_time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | -| update_time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | +| name | [string](#string) | | | - + -### UserAccessToken +### UpsertTagResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| access_token | [string](#string) | | | -| description | [string](#string) | | | -| issued_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | -| expires_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | +| tag | [Tag](#memos-api-v2-Tag) | | | @@ -1396,39 +1413,22 @@ - - - -### User.Role - - -| Name | Number | Description | -| ---- | ------ | ----------- | -| ROLE_UNSPECIFIED | 0 | | -| HOST | 1 | | -| ADMIN | 2 | | -| USER | 3 | | - - - + -### UserService +### TagService | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| -| GetUser | [GetUserRequest](#memos-api-v2-GetUserRequest) | [GetUserResponse](#memos-api-v2-GetUserResponse) | GetUser gets a user by name. | -| CreateUser | [CreateUserRequest](#memos-api-v2-CreateUserRequest) | [CreateUserResponse](#memos-api-v2-CreateUserResponse) | CreateUser creates a new user. | -| UpdateUser | [UpdateUserRequest](#memos-api-v2-UpdateUserRequest) | [UpdateUserResponse](#memos-api-v2-UpdateUserResponse) | UpdateUser updates a user. | -| DeleteUser | [DeleteUserRequest](#memos-api-v2-DeleteUserRequest) | [DeleteUserResponse](#memos-api-v2-DeleteUserResponse) | DeleteUser deletes a user. | -| ListUserAccessTokens | [ListUserAccessTokensRequest](#memos-api-v2-ListUserAccessTokensRequest) | [ListUserAccessTokensResponse](#memos-api-v2-ListUserAccessTokensResponse) | ListUserAccessTokens returns a list of access tokens for a user. | -| CreateUserAccessToken | [CreateUserAccessTokenRequest](#memos-api-v2-CreateUserAccessTokenRequest) | [CreateUserAccessTokenResponse](#memos-api-v2-CreateUserAccessTokenResponse) | CreateUserAccessToken creates a new access token for a user. | -| DeleteUserAccessToken | [DeleteUserAccessTokenRequest](#memos-api-v2-DeleteUserAccessTokenRequest) | [DeleteUserAccessTokenResponse](#memos-api-v2-DeleteUserAccessTokenResponse) | DeleteUserAccessToken deletes an access token for a user. | +| UpsertTag | [UpsertTagRequest](#memos-api-v2-UpsertTagRequest) | [UpsertTagResponse](#memos-api-v2-UpsertTagResponse) | | +| ListTags | [ListTagsRequest](#memos-api-v2-ListTagsRequest) | [ListTagsResponse](#memos-api-v2-ListTagsResponse) | | +| DeleteTag | [DeleteTagRequest](#memos-api-v2-DeleteTagRequest) | [DeleteTagResponse](#memos-api-v2-DeleteTagResponse) | | +| GetTagSuggestions | [GetTagSuggestionsRequest](#memos-api-v2-GetTagSuggestionsRequest) | [GetTagSuggestionsResponse](#memos-api-v2-GetTagSuggestionsResponse) | | diff --git a/proto/gen/api/v2/auth_service.pb.go b/proto/gen/api/v2/auth_service.pb.go index 99c310e5d..458a2e35b 100644 --- a/proto/gen/api/v2/auth_service.pb.go +++ b/proto/gen/api/v2/auth_service.pb.go @@ -64,7 +64,7 @@ type GetAuthStatusResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` + User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` } func (x *GetAuthStatusResponse) Reset() { @@ -99,11 +99,11 @@ func (*GetAuthStatusResponse) Descriptor() ([]byte, []int) { return file_api_v2_auth_service_proto_rawDescGZIP(), []int{1} } -func (x *GetAuthStatusResponse) GetOk() bool { +func (x *GetAuthStatusResponse) GetUser() *User { if x != nil { - return x.Ok + return x.User } - return false + return nil } var File_api_v2_auth_service_proto protoreflect.FileDescriptor @@ -111,33 +111,36 @@ var File_api_v2_auth_service_proto protoreflect.FileDescriptor var file_api_v2_auth_service_proto_rawDesc = []byte{ 0x0a, 0x19, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x6d, 0x65, 0x6d, - 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x75, - 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0x27, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x32, 0x84, 0x01, 0x0a, 0x0b, 0x41, 0x75, 0x74, - 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x75, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, - 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, - 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, - 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x13, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, - 0xa8, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x32, 0x42, 0x10, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x65, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x65, - 0x6d, 0x6f, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x32, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x32, 0xa2, 0x02, 0x03, 0x4d, 0x41, 0x58, - 0xaa, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x70, 0x69, 0x2e, 0x56, 0x32, 0xca, - 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x32, 0xe2, 0x02, - 0x18, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x32, 0x5c, 0x47, 0x50, - 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x4d, 0x65, 0x6d, 0x6f, - 0x73, 0x3a, 0x3a, 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x1a, 0x19, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x32, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3f, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x32, 0x84, 0x01, 0x0a, 0x0b, + 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x75, 0x0a, 0x0d, 0x47, + 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x2e, 0x6d, + 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x23, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x13, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x42, 0xa8, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x42, 0x10, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x65, 0x6d, 0x65, 0x6d, 0x6f, 0x73, + 0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x32, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x32, 0xa2, 0x02, 0x03, + 0x4d, 0x41, 0x58, 0xaa, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x70, 0x69, 0x2e, + 0x56, 0x32, 0xca, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, + 0x32, 0xe2, 0x02, 0x18, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x32, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x4d, + 0x65, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -156,15 +159,17 @@ var file_api_v2_auth_service_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_api_v2_auth_service_proto_goTypes = []interface{}{ (*GetAuthStatusRequest)(nil), // 0: memos.api.v2.GetAuthStatusRequest (*GetAuthStatusResponse)(nil), // 1: memos.api.v2.GetAuthStatusResponse + (*User)(nil), // 2: memos.api.v2.User } var file_api_v2_auth_service_proto_depIdxs = []int32{ - 0, // 0: memos.api.v2.AuthService.GetAuthStatus:input_type -> memos.api.v2.GetAuthStatusRequest - 1, // 1: memos.api.v2.AuthService.GetAuthStatus:output_type -> memos.api.v2.GetAuthStatusResponse - 1, // [1:2] is the sub-list for method output_type - 0, // [0:1] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name + 2, // 0: memos.api.v2.GetAuthStatusResponse.user:type_name -> memos.api.v2.User + 0, // 1: memos.api.v2.AuthService.GetAuthStatus:input_type -> memos.api.v2.GetAuthStatusRequest + 1, // 2: memos.api.v2.AuthService.GetAuthStatus:output_type -> memos.api.v2.GetAuthStatusResponse + 2, // [2:3] is the sub-list for method output_type + 1, // [1:2] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name } func init() { file_api_v2_auth_service_proto_init() } @@ -172,6 +177,7 @@ func file_api_v2_auth_service_proto_init() { if File_api_v2_auth_service_proto != nil { return } + file_api_v2_user_service_proto_init() if !protoimpl.UnsafeEnabled { file_api_v2_auth_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAuthStatusRequest); i { diff --git a/web/src/store/module/user.ts b/web/src/store/module/user.ts index 2d2afceb1..e89dc70e3 100644 --- a/web/src/store/module/user.ts +++ b/web/src/store/module/user.ts @@ -78,16 +78,16 @@ const doSignOut = async () => { const fetchCurrentUser = async () => { const userId = localStorage.getItem("userId"); if (userId) { - const { ok } = await authServiceClient.getAuthStatus({}); - if (!ok) { + const { user } = await authServiceClient.getAuthStatus({}); + if (!user) { localStorage.removeItem("userId"); return; } const { data } = await api.getUserById(Number(userId)); - const user = convertResponseModelUser(data); - if (user) { - store.dispatch(setUser(user)); - return user; + const userMessage = convertResponseModelUser(data); + if (userMessage) { + store.dispatch(setUser(userMessage)); + return userMessage; } } };