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
da2dd80e
Unverified
Commit
da2dd80e
authored
Jan 08, 2026
by
Faizaan pochi
Committed by
GitHub
Jan 08, 2026
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: return Unauthenticated instead of PermissionDenied on token expiration (#5454)
parent
07eac279
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
31 additions
and
7 deletions
+31
-7
idp_service.go
server/router/api/v1/idp_service.go
+12
-3
instance_service.go
server/router/api/v1/instance_service.go
+4
-1
memo_service.go
server/router/api/v1/memo_service.go
+1
-1
idp_service_test.go
server/router/api/v1/test/idp_service_test.go
+2
-2
user_service.go
server/router/api/v1/user_service.go
+12
-0
No files found.
server/router/api/v1/idp_service.go
View file @
da2dd80e
...
...
@@ -18,7 +18,10 @@ func (s *APIV1Service) CreateIdentityProvider(ctx context.Context, request *v1pb
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get user: %v"
,
err
)
}
if
currentUser
==
nil
||
currentUser
.
Role
!=
store
.
RoleHost
{
if
currentUser
==
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Unauthenticated
,
"user not authenticated"
)
}
if
currentUser
.
Role
!=
store
.
RoleHost
{
return
nil
,
status
.
Errorf
(
codes
.
PermissionDenied
,
"permission denied"
)
}
...
...
@@ -84,7 +87,10 @@ func (s *APIV1Service) UpdateIdentityProvider(ctx context.Context, request *v1pb
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get user: %v"
,
err
)
}
if
currentUser
==
nil
||
currentUser
.
Role
!=
store
.
RoleHost
{
if
currentUser
==
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Unauthenticated
,
"user not authenticated"
)
}
if
currentUser
.
Role
!=
store
.
RoleHost
{
return
nil
,
status
.
Errorf
(
codes
.
PermissionDenied
,
"permission denied"
)
}
...
...
@@ -125,7 +131,10 @@ func (s *APIV1Service) DeleteIdentityProvider(ctx context.Context, request *v1pb
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get user: %v"
,
err
)
}
if
currentUser
==
nil
||
currentUser
.
Role
!=
store
.
RoleHost
{
if
currentUser
==
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Unauthenticated
,
"user not authenticated"
)
}
if
currentUser
.
Role
!=
store
.
RoleHost
{
return
nil
,
status
.
Errorf
(
codes
.
PermissionDenied
,
"permission denied"
)
}
...
...
server/router/api/v1/instance_service.go
View file @
da2dd80e
...
...
@@ -70,7 +70,10 @@ func (s *APIV1Service) GetInstanceSetting(ctx context.Context, request *v1pb.Get
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get current user: %v"
,
err
)
}
if
user
==
nil
||
user
.
Role
!=
store
.
RoleHost
{
if
user
==
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Unauthenticated
,
"user not authenticated"
)
}
if
user
.
Role
!=
store
.
RoleHost
{
return
nil
,
status
.
Errorf
(
codes
.
PermissionDenied
,
"permission denied"
)
}
}
...
...
server/router/api/v1/memo_service.go
View file @
da2dd80e
...
...
@@ -281,7 +281,7 @@ func (s *APIV1Service) GetMemo(ctx context.Context, request *v1pb.GetMemoRequest
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get user"
)
}
if
user
==
nil
{
return
nil
,
status
.
Errorf
(
codes
.
PermissionDenied
,
"permission deni
ed"
)
return
nil
,
status
.
Errorf
(
codes
.
Unauthenticated
,
"user not authenticat
ed"
)
}
if
memo
.
Visibility
==
store
.
Private
&&
memo
.
CreatorID
!=
user
.
ID
{
return
nil
,
status
.
Errorf
(
codes
.
PermissionDenied
,
"permission denied"
)
...
...
server/router/api/v1/test/idp_service_test.go
View file @
da2dd80e
...
...
@@ -97,7 +97,7 @@ func TestCreateIdentityProvider(t *testing.T) {
_
,
err
:=
ts
.
Service
.
CreateIdentityProvider
(
ctx
,
req
)
require
.
Error
(
t
,
err
)
require
.
Contains
(
t
,
err
.
Error
(),
"
permission deni
ed"
)
require
.
Contains
(
t
,
err
.
Error
(),
"
user not authenticat
ed"
)
})
}
...
...
@@ -547,6 +547,6 @@ func TestIdentityProviderPermissions(t *testing.T) {
_
,
err
:=
ts
.
Service
.
CreateIdentityProvider
(
ctx
,
req
)
require
.
Error
(
t
,
err
)
require
.
Contains
(
t
,
err
.
Error
(),
"
permission deni
ed"
)
require
.
Contains
(
t
,
err
.
Error
(),
"
user not authenticat
ed"
)
})
}
server/router/api/v1/user_service.go
View file @
da2dd80e
...
...
@@ -192,6 +192,9 @@ func (s *APIV1Service) UpdateUser(ctx context.Context, request *v1pb.UpdateUserR
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get user: %v"
,
err
)
}
if
currentUser
==
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Unauthenticated
,
"user not authenticated"
)
}
// Check permission.
// Only allow admin or self to update user.
if
currentUser
.
ID
!=
userID
&&
currentUser
.
Role
!=
store
.
RoleAdmin
&&
currentUser
.
Role
!=
store
.
RoleHost
{
...
...
@@ -1240,6 +1243,9 @@ func (s *APIV1Service) ListUserNotifications(ctx context.Context, request *v1pb.
if
err
!=
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get current user: %v"
,
err
)
}
if
currentUser
==
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Unauthenticated
,
"user not authenticated"
)
}
if
currentUser
.
ID
!=
userID
{
return
nil
,
status
.
Errorf
(
codes
.
PermissionDenied
,
"permission denied"
)
}
...
...
@@ -1287,6 +1293,9 @@ func (s *APIV1Service) UpdateUserNotification(ctx context.Context, request *v1pb
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get current user: %v"
,
err
)
}
if
currentUser
==
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Unauthenticated
,
"user not authenticated"
)
}
// Verify ownership before updating
inboxes
,
err
:=
s
.
Store
.
ListInboxes
(
ctx
,
&
store
.
FindInbox
{
ID
:
&
notificationID
,
...
...
@@ -1352,6 +1361,9 @@ func (s *APIV1Service) DeleteUserNotification(ctx context.Context, request *v1pb
return
nil
,
status
.
Errorf
(
codes
.
Internal
,
"failed to get current user: %v"
,
err
)
}
if
currentUser
==
nil
{
return
nil
,
status
.
Errorf
(
codes
.
Unauthenticated
,
"user not authenticated"
)
}
// Verify ownership before deletion
inboxes
,
err
:=
s
.
Store
.
ListInboxes
(
ctx
,
&
store
.
FindInbox
{
ID
:
&
notificationID
,
...
...
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