From bb076ce486b933caec36652bbe9904b1c44a2255 Mon Sep 17 00:00:00 2001 From: Steven Date: Sun, 12 May 2024 08:09:14 +0800 Subject: [PATCH] chore: update list workspace settings --- server/router/api/v1/acl_config.go | 10 ++++------ server/router/api/v1/workspace_setting_service.go | 14 +++++++++++--- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/server/router/api/v1/acl_config.go b/server/router/api/v1/acl_config.go index e22ab7f5..9f4b4ff0 100644 --- a/server/router/api/v1/acl_config.go +++ b/server/router/api/v1/acl_config.go @@ -4,8 +4,8 @@ var authenticationAllowlistMethods = map[string]bool{ "/memos.api.v1.WorkspaceService/GetWorkspaceProfile": true, "/memos.api.v1.WorkspaceSettingService/GetWorkspaceSetting": true, "/memos.api.v1.WorkspaceSettingService/ListWorkspaceSettings": true, - "/memos.api.v1.IdentityProviderService/ListIdentityProviders": true, "/memos.api.v1.IdentityProviderService/GetIdentityProvider": true, + "/memos.api.v1.IdentityProviderService/ListIdentityProviders": true, "/memos.api.v1.AuthService/GetAuthStatus": true, "/memos.api.v1.AuthService/SignIn": true, "/memos.api.v1.AuthService/SignInWithSSO": true, @@ -14,12 +14,9 @@ var authenticationAllowlistMethods = map[string]bool{ "/memos.api.v1.UserService/GetUser": true, "/memos.api.v1.UserService/GetUserAvatarBinary": true, "/memos.api.v1.UserService/SearchUsers": true, - "/memos.api.v1.MemoService/ListMemos": true, "/memos.api.v1.MemoService/GetMemo": true, + "/memos.api.v1.MemoService/ListMemos": true, "/memos.api.v1.MemoService/SearchMemos": true, - "/memos.api.v1.MemoService/ListMemoResources": true, - "/memos.api.v1.MemoService/ListMemoRelations": true, - "/memos.api.v1.MemoService/ListMemoComments": true, "/memos.api.v1.MarkdownService/GetLinkMetadata": true, "/memos.api.v1.ResourceService/GetResourceBinary": true, } @@ -30,7 +27,8 @@ func isUnauthorizeAllowedMethod(fullMethodName string) bool { } var allowedMethodsOnlyForAdmin = map[string]bool{ - "/memos.api.v1.UserService/CreateUser": true, + "/memos.api.v1.UserService/CreateUser": true, + "/memos.api.v1.WorkspaceSettingService/SetWorkspaceSetting": true, } // isOnlyForAdminAllowedMethod returns true if the method is allowed to be called only by admin. diff --git a/server/router/api/v1/workspace_setting_service.go b/server/router/api/v1/workspace_setting_service.go index a6cf1f09..7b65d70f 100644 --- a/server/router/api/v1/workspace_setting_service.go +++ b/server/router/api/v1/workspace_setting_service.go @@ -13,7 +13,16 @@ import ( ) func (s *APIV1Service) ListWorkspaceSettings(ctx context.Context, _ *v1pb.ListWorkspaceSettingsRequest) (*v1pb.ListWorkspaceSettingsResponse, error) { - workspaceSettings, err := s.Store.ListWorkspaceSettings(ctx, &store.FindWorkspaceSetting{}) + user, err := getCurrentUser(ctx, s.Store) + if err != nil { + return nil, status.Errorf(codes.Internal, "failed to get current user: %v", err) + } + + workspaceSettingFind := &store.FindWorkspaceSetting{} + if user == nil || user.Role == store.RoleUser { + workspaceSettingFind.Name = storepb.WorkspaceSettingKey_WORKSPACE_SETTING_GENERAL.String() + } + workspaceSettings, err := s.Store.ListWorkspaceSettings(ctx, workspaceSettingFind) if err != nil { return nil, status.Errorf(codes.Internal, "failed to get workspace setting: %v", err) } @@ -35,9 +44,8 @@ func (s *APIV1Service) GetWorkspaceSetting(ctx context.Context, request *v1pb.Ge if err != nil { return nil, status.Errorf(codes.InvalidArgument, "invalid workspace setting name: %v", err) } - settingKey := storepb.WorkspaceSettingKey(storepb.WorkspaceSettingKey_value[settingKeyString]) workspaceSetting, err := s.Store.GetWorkspaceSetting(ctx, &store.FindWorkspaceSetting{ - Name: settingKey.String(), + Name: settingKeyString, }) if err != nil { return nil, status.Errorf(codes.Internal, "failed to get workspace setting: %v", err)