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
f4154d09
Unverified
Commit
f4154d09
authored
Mar 09, 2026
by
memoclaw
Committed by
GitHub
Mar 09, 2026
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: restrict archived memo access to creator only (#5707)
Co-authored-by:
Claude Opus 4.6
<
noreply@anthropic.com
>
parent
8f43e807
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
4 deletions
+22
-4
memo_service.go
server/router/api/v1/memo_service.go
+22
-4
No files found.
server/router/api/v1/memo_service.go
View file @
f4154d09
...
...
@@ -153,9 +153,19 @@ func (s *APIV1Service) ListMemos(ctx context.Context, request *v1pb.ListMemosReq
// Exclude comments by default.
ExcludeComments
:
true
,
}
currentUser
,
err
:=
s
.
fetchCurrentUser
(
ctx
)
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get user"
)
}
if
request
.
State
==
v1pb
.
State_ARCHIVED
{
state
:=
store
.
Archived
memoFind
.
RowStatus
=
&
state
// Archived memos are only visible to their creator.
if
currentUser
==
nil
{
return
&
v1pb
.
ListMemosResponse
{},
nil
}
memoFind
.
CreatorID
=
&
currentUser
.
ID
}
else
{
state
:=
store
.
Normal
memoFind
.
RowStatus
=
&
state
...
...
@@ -178,10 +188,6 @@ func (s *APIV1Service) ListMemos(ctx context.Context, request *v1pb.ListMemosReq
memoFind
.
Filters
=
append
(
memoFind
.
Filters
,
request
.
Filter
)
}
currentUser
,
err
:=
s
.
fetchCurrentUser
(
ctx
)
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get user"
)
}
if
currentUser
==
nil
{
memoFind
.
VisibilityList
=
[]
store
.
Visibility
{
store
.
Public
}
}
else
{
...
...
@@ -311,6 +317,18 @@ func (s *APIV1Service) GetMemo(ctx context.Context, request *v1pb.GetMemoRequest
if
memo
==
nil
{
return
nil
,
status
.
Errorf
(
codes
.
NotFound
,
"memo not found"
)
}
// Archived memos are only visible to their creator.
if
memo
.
RowStatus
==
store
.
Archived
{
user
,
err
:=
s
.
fetchCurrentUser
(
ctx
)
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get user"
)
}
if
user
==
nil
||
memo
.
CreatorID
!=
user
.
ID
{
return
nil
,
status
.
Errorf
(
codes
.
NotFound
,
"memo not found"
)
}
}
if
memo
.
Visibility
!=
store
.
Public
{
user
,
err
:=
s
.
fetchCurrentUser
(
ctx
)
if
err
!=
nil
{
...
...
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