Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Anh
canifa_note
Commits
c68bfcc3
Commit
c68bfcc3
authored
Dec 08, 2023
by
steven
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: fix user setting store
parent
2964cf93
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
89 additions
and
11 deletions
+89
-11
user_service.go
api/v2/user_service.go
+9
-1
user_setting.go
store/db/mysql/user_setting.go
+26
-3
user_setting.go
store/db/postgres/user_setting.go
+26
-3
user_setting.go
store/db/sqlite/user_setting.go
+26
-2
index.tsx
web/src/components/MemoEditor/index.tsx
+1
-1
PreferencesSection.tsx
web/src/components/Settings/PreferencesSection.tsx
+1
-1
No files found.
api/v2/user_service.go
View file @
c68bfcc3
...
@@ -187,6 +187,14 @@ func (s *APIV2Service) DeleteUser(ctx context.Context, request *apiv2pb.DeleteUs
...
@@ -187,6 +187,14 @@ func (s *APIV2Service) DeleteUser(ctx context.Context, request *apiv2pb.DeleteUs
return
&
apiv2pb
.
DeleteUserResponse
{},
nil
return
&
apiv2pb
.
DeleteUserResponse
{},
nil
}
}
func
getDefaultUserSetting
()
*
apiv2pb
.
UserSetting
{
return
&
apiv2pb
.
UserSetting
{
Locale
:
"en"
,
Appearance
:
"system"
,
MemoVisibility
:
"PRIVATE"
,
}
}
func
(
s
*
APIV2Service
)
GetUserSetting
(
ctx
context
.
Context
,
_
*
apiv2pb
.
GetUserSettingRequest
)
(
*
apiv2pb
.
GetUserSettingResponse
,
error
)
{
func
(
s
*
APIV2Service
)
GetUserSetting
(
ctx
context
.
Context
,
_
*
apiv2pb
.
GetUserSettingRequest
)
(
*
apiv2pb
.
GetUserSettingResponse
,
error
)
{
user
,
err
:=
getCurrentUser
(
ctx
,
s
.
Store
)
user
,
err
:=
getCurrentUser
(
ctx
,
s
.
Store
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -199,7 +207,7 @@ func (s *APIV2Service) GetUserSetting(ctx context.Context, _ *apiv2pb.GetUserSet
...
@@ -199,7 +207,7 @@ func (s *APIV2Service) GetUserSetting(ctx context.Context, _ *apiv2pb.GetUserSet
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to list user settings: %v"
,
err
)
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to list user settings: %v"
,
err
)
}
}
userSettingMessage
:=
&
apiv2pb
.
UserSetting
{}
userSettingMessage
:=
getDefaultUserSetting
()
for
_
,
setting
:=
range
userSettings
{
for
_
,
setting
:=
range
userSettings
{
if
setting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_LOCALE
{
if
setting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_LOCALE
{
userSettingMessage
.
Locale
=
setting
.
GetLocale
()
userSettingMessage
.
Locale
=
setting
.
GetLocale
()
...
...
store/db/mysql/user_setting.go
View file @
c68bfcc3
...
@@ -67,8 +67,16 @@ func (d *DB) UpsertUserSettingV1(ctx context.Context, upsert *storepb.UserSettin
...
@@ -67,8 +67,16 @@ func (d *DB) UpsertUserSettingV1(ctx context.Context, upsert *storepb.UserSettin
return
nil
,
err
return
nil
,
err
}
}
valueString
=
string
(
valueBytes
)
valueString
=
string
(
valueBytes
)
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_LOCALE
{
valueString
=
upsert
.
GetLocale
()
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_APPEARANCE
{
valueString
=
upsert
.
GetAppearance
()
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_MEMO_VISIBILITY
{
valueString
=
upsert
.
GetMemoVisibility
()
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_TELEGRAM_USER_ID
{
valueString
=
upsert
.
GetTelegramUserId
()
}
else
{
}
else
{
return
nil
,
errors
.
New
(
"invalid user setting key"
)
return
nil
,
errors
.
Errorf
(
"unknown user setting key: %s"
,
upsert
.
Key
.
String
()
)
}
}
if
_
,
err
:=
d
.
db
.
ExecContext
(
ctx
,
stmt
,
upsert
.
UserId
,
upsert
.
Key
.
String
(),
valueString
,
valueString
);
err
!=
nil
{
if
_
,
err
:=
d
.
db
.
ExecContext
(
ctx
,
stmt
,
upsert
.
UserId
,
upsert
.
Key
.
String
(),
valueString
,
valueString
);
err
!=
nil
{
...
@@ -115,9 +123,24 @@ func (d *DB) ListUserSettingsV1(ctx context.Context, find *store.FindUserSetting
...
@@ -115,9 +123,24 @@ func (d *DB) ListUserSettingsV1(ctx context.Context, find *store.FindUserSetting
userSetting
.
Value
=
&
storepb
.
UserSetting_AccessTokens
{
userSetting
.
Value
=
&
storepb
.
UserSetting_AccessTokens
{
AccessTokens
:
accessTokensUserSetting
,
AccessTokens
:
accessTokensUserSetting
,
}
}
}
else
if
userSetting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_LOCALE
{
userSetting
.
Value
=
&
storepb
.
UserSetting_Locale
{
Locale
:
valueString
,
}
}
else
if
userSetting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_APPEARANCE
{
userSetting
.
Value
=
&
storepb
.
UserSetting_Appearance
{
Appearance
:
valueString
,
}
}
else
if
userSetting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_MEMO_VISIBILITY
{
userSetting
.
Value
=
&
storepb
.
UserSetting_MemoVisibility
{
MemoVisibility
:
valueString
,
}
}
else
if
userSetting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_TELEGRAM_USER_ID
{
userSetting
.
Value
=
&
storepb
.
UserSetting_TelegramUserId
{
TelegramUserId
:
valueString
,
}
}
else
{
}
else
{
// Skip unknown user setting v1 key.
return
nil
,
errors
.
Errorf
(
"unknown user setting key: %s"
,
userSetting
.
Key
.
String
())
continue
}
}
userSettingList
=
append
(
userSettingList
,
userSetting
)
userSettingList
=
append
(
userSettingList
,
userSetting
)
}
}
...
...
store/db/postgres/user_setting.go
View file @
c68bfcc3
...
@@ -88,8 +88,16 @@ func (d *DB) UpsertUserSettingV1(ctx context.Context, upsert *storepb.UserSettin
...
@@ -88,8 +88,16 @@ func (d *DB) UpsertUserSettingV1(ctx context.Context, upsert *storepb.UserSettin
return
nil
,
err
return
nil
,
err
}
}
valueString
=
string
(
valueBytes
)
valueString
=
string
(
valueBytes
)
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_LOCALE
{
valueString
=
upsert
.
GetLocale
()
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_APPEARANCE
{
valueString
=
upsert
.
GetAppearance
()
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_MEMO_VISIBILITY
{
valueString
=
upsert
.
GetMemoVisibility
()
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_TELEGRAM_USER_ID
{
valueString
=
upsert
.
GetTelegramUserId
()
}
else
{
}
else
{
return
nil
,
errors
.
New
(
"invalid user setting key"
)
return
nil
,
errors
.
Errorf
(
"unknown user setting key: %s"
,
upsert
.
Key
.
String
()
)
}
}
// Construct the query using Squirrel
// Construct the query using Squirrel
...
@@ -158,9 +166,24 @@ func (d *DB) ListUserSettingsV1(ctx context.Context, find *store.FindUserSetting
...
@@ -158,9 +166,24 @@ func (d *DB) ListUserSettingsV1(ctx context.Context, find *store.FindUserSetting
userSetting
.
Value
=
&
storepb
.
UserSetting_AccessTokens
{
userSetting
.
Value
=
&
storepb
.
UserSetting_AccessTokens
{
AccessTokens
:
accessTokensUserSetting
,
AccessTokens
:
accessTokensUserSetting
,
}
}
}
else
if
userSetting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_LOCALE
{
userSetting
.
Value
=
&
storepb
.
UserSetting_Locale
{
Locale
:
valueString
,
}
}
else
if
userSetting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_APPEARANCE
{
userSetting
.
Value
=
&
storepb
.
UserSetting_Appearance
{
Appearance
:
valueString
,
}
}
else
if
userSetting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_MEMO_VISIBILITY
{
userSetting
.
Value
=
&
storepb
.
UserSetting_MemoVisibility
{
MemoVisibility
:
valueString
,
}
}
else
if
userSetting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_TELEGRAM_USER_ID
{
userSetting
.
Value
=
&
storepb
.
UserSetting_TelegramUserId
{
TelegramUserId
:
valueString
,
}
}
else
{
}
else
{
// Skip unknown user setting v1 key
return
nil
,
errors
.
Errorf
(
"unknown user setting key: %s"
,
userSetting
.
Key
.
String
())
continue
}
}
userSettingList
=
append
(
userSettingList
,
userSetting
)
userSettingList
=
append
(
userSettingList
,
userSetting
)
}
}
...
...
store/db/sqlite/user_setting.go
View file @
c68bfcc3
...
@@ -3,11 +3,11 @@ package sqlite
...
@@ -3,11 +3,11 @@ package sqlite
import
(
import
(
"context"
"context"
"database/sql"
"database/sql"
"errors"
"strings"
"strings"
"google.golang.org/protobuf/encoding/protojson"
"google.golang.org/protobuf/encoding/protojson"
"github.com/pkg/errors"
storepb
"github.com/usememos/memos/proto/gen/store"
storepb
"github.com/usememos/memos/proto/gen/store"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store"
)
)
...
@@ -87,8 +87,16 @@ func (d *DB) UpsertUserSettingV1(ctx context.Context, upsert *storepb.UserSettin
...
@@ -87,8 +87,16 @@ func (d *DB) UpsertUserSettingV1(ctx context.Context, upsert *storepb.UserSettin
return
nil
,
err
return
nil
,
err
}
}
valueString
=
string
(
valueBytes
)
valueString
=
string
(
valueBytes
)
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_LOCALE
{
valueString
=
upsert
.
GetLocale
()
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_APPEARANCE
{
valueString
=
upsert
.
GetAppearance
()
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_MEMO_VISIBILITY
{
valueString
=
upsert
.
GetMemoVisibility
()
}
else
if
upsert
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_TELEGRAM_USER_ID
{
valueString
=
upsert
.
GetTelegramUserId
()
}
else
{
}
else
{
return
nil
,
errors
.
New
(
"invalid user setting key"
)
return
nil
,
errors
.
Errorf
(
"unknown user setting key: %s"
,
upsert
.
Key
.
String
()
)
}
}
if
_
,
err
:=
d
.
db
.
ExecContext
(
ctx
,
stmt
,
upsert
.
UserId
,
upsert
.
Key
.
String
(),
valueString
);
err
!=
nil
{
if
_
,
err
:=
d
.
db
.
ExecContext
(
ctx
,
stmt
,
upsert
.
UserId
,
upsert
.
Key
.
String
(),
valueString
);
err
!=
nil
{
...
@@ -141,6 +149,22 @@ func (d *DB) ListUserSettingsV1(ctx context.Context, find *store.FindUserSetting
...
@@ -141,6 +149,22 @@ func (d *DB) ListUserSettingsV1(ctx context.Context, find *store.FindUserSetting
userSetting
.
Value
=
&
storepb
.
UserSetting_AccessTokens
{
userSetting
.
Value
=
&
storepb
.
UserSetting_AccessTokens
{
AccessTokens
:
accessTokensUserSetting
,
AccessTokens
:
accessTokensUserSetting
,
}
}
}
else
if
userSetting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_LOCALE
{
userSetting
.
Value
=
&
storepb
.
UserSetting_Locale
{
Locale
:
valueString
,
}
}
else
if
userSetting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_APPEARANCE
{
userSetting
.
Value
=
&
storepb
.
UserSetting_Appearance
{
Appearance
:
valueString
,
}
}
else
if
userSetting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_MEMO_VISIBILITY
{
userSetting
.
Value
=
&
storepb
.
UserSetting_MemoVisibility
{
MemoVisibility
:
valueString
,
}
}
else
if
userSetting
.
Key
==
storepb
.
UserSettingKey_USER_SETTING_TELEGRAM_USER_ID
{
userSetting
.
Value
=
&
storepb
.
UserSetting_TelegramUserId
{
TelegramUserId
:
valueString
,
}
}
else
{
}
else
{
// Skip unknown user setting v1 key.
// Skip unknown user setting v1 key.
continue
continue
...
...
web/src/components/MemoEditor/index.tsx
View file @
c68bfcc3
...
@@ -80,7 +80,7 @@ const MemoEditor = (props: Props) => {
...
@@ -80,7 +80,7 @@ const MemoEditor = (props: Props) => {
},
[]);
},
[]);
useEffect
(()
=>
{
useEffect
(()
=>
{
let
visibility
=
userSetting
.
memoVisibility
||
"PRIVATE"
;
let
visibility
=
userSetting
.
memoVisibility
;
if
(
systemStatus
.
disablePublicMemos
&&
visibility
===
"PUBLIC"
)
{
if
(
systemStatus
.
disablePublicMemos
&&
visibility
===
"PUBLIC"
)
{
visibility
=
"PRIVATE"
;
visibility
=
"PRIVATE"
;
}
}
...
...
web/src/components/Settings/PreferencesSection.tsx
View file @
c68bfcc3
...
@@ -85,7 +85,7 @@ const PreferencesSection = () => {
...
@@ -85,7 +85,7 @@ const PreferencesSection = () => {
<
span
className=
"text-sm break-keep text-ellipsis overflow-hidden"
>
{
t
(
"setting.preference-section.default-memo-visibility"
)
}
</
span
>
<
span
className=
"text-sm break-keep text-ellipsis overflow-hidden"
>
{
t
(
"setting.preference-section.default-memo-visibility"
)
}
</
span
>
<
Select
<
Select
className=
"!min-w-fit"
className=
"!min-w-fit"
value=
{
setting
.
memoVisibility
||
"PRIVATE"
}
value=
{
setting
.
memoVisibility
}
startDecorator=
{
<
VisibilityIcon
visibility=
{
setting
.
memoVisibility
as
Visibility
}
/>
}
startDecorator=
{
<
VisibilityIcon
visibility=
{
setting
.
memoVisibility
as
Visibility
}
/>
}
onChange=
{
(
_
,
visibility
)
=>
{
onChange=
{
(
_
,
visibility
)
=>
{
if
(
visibility
)
{
if
(
visibility
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment