Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
synapse
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Monitor
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Maunium
synapse
Commits
16d97018
Commit
16d97018
authored
6 years ago
by
Will Hunt
Committed by
Richard van der Hoff
6 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Return M_NOT_FOUND when a profile could not be found. (#3596)
parent
df7f9871
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
changelog.d/3585.bugfix
+1
-0
1 addition, 0 deletions
changelog.d/3585.bugfix
synapse/handlers/profile.py
+58
-31
58 additions, 31 deletions
synapse/handlers/profile.py
with
59 additions
and
31 deletions
changelog.d/3585.bugfix
0 → 100644
+
1
−
0
View file @
16d97018
Respond with M_NOT_FOUND when profiles are not found locally or over federation. Fixes #3585
This diff is collapsed.
Click to expand it.
synapse/handlers/profile.py
+
58
−
31
View file @
16d97018
...
...
@@ -17,7 +17,13 @@ import logging
from
twisted.internet
import
defer
from
synapse.api.errors
import
AuthError
,
CodeMessageException
,
SynapseError
from
synapse.api.errors
import
(
AuthError
,
CodeMessageException
,
Codes
,
StoreError
,
SynapseError
,
)
from
synapse.metrics.background_process_metrics
import
run_as_background_process
from
synapse.types
import
UserID
,
get_domain_from_id
...
...
@@ -49,12 +55,17 @@ class ProfileHandler(BaseHandler):
def
get_profile
(
self
,
user_id
):
target_user
=
UserID
.
from_string
(
user_id
)
if
self
.
hs
.
is_mine
(
target_user
):
displayname
=
yield
self
.
store
.
get_profile_displayname
(
target_user
.
localpart
)
avatar_url
=
yield
self
.
store
.
get_profile_avatar_url
(
target_user
.
localpart
)
try
:
displayname
=
yield
self
.
store
.
get_profile_displayname
(
target_user
.
localpart
)
avatar_url
=
yield
self
.
store
.
get_profile_avatar_url
(
target_user
.
localpart
)
except
StoreError
as
e
:
if
e
.
code
==
404
:
raise
SynapseError
(
404
,
"
Profile was not found
"
,
Codes
.
NOT_FOUND
)
raise
defer
.
returnValue
({
"
displayname
"
:
displayname
,
...
...
@@ -74,7 +85,6 @@ class ProfileHandler(BaseHandler):
except
CodeMessageException
as
e
:
if
e
.
code
!=
404
:
logger
.
exception
(
"
Failed to get displayname
"
)
raise
@defer.inlineCallbacks
...
...
@@ -85,12 +95,17 @@ class ProfileHandler(BaseHandler):
"""
target_user
=
UserID
.
from_string
(
user_id
)
if
self
.
hs
.
is_mine
(
target_user
):
displayname
=
yield
self
.
store
.
get_profile_displayname
(
target_user
.
localpart
)
avatar_url
=
yield
self
.
store
.
get_profile_avatar_url
(
target_user
.
localpart
)
try
:
displayname
=
yield
self
.
store
.
get_profile_displayname
(
target_user
.
localpart
)
avatar_url
=
yield
self
.
store
.
get_profile_avatar_url
(
target_user
.
localpart
)
except
StoreError
as
e
:
if
e
.
code
==
404
:
raise
SynapseError
(
404
,
"
Profile was not found
"
,
Codes
.
NOT_FOUND
)
raise
defer
.
returnValue
({
"
displayname
"
:
displayname
,
...
...
@@ -103,9 +118,14 @@ class ProfileHandler(BaseHandler):
@defer.inlineCallbacks
def
get_displayname
(
self
,
target_user
):
if
self
.
hs
.
is_mine
(
target_user
):
displayname
=
yield
self
.
store
.
get_profile_displayname
(
target_user
.
localpart
)
try
:
displayname
=
yield
self
.
store
.
get_profile_displayname
(
target_user
.
localpart
)
except
StoreError
as
e
:
if
e
.
code
==
404
:
raise
SynapseError
(
404
,
"
Profile was not found
"
,
Codes
.
NOT_FOUND
)
raise
defer
.
returnValue
(
displayname
)
else
:
...
...
@@ -122,7 +142,6 @@ class ProfileHandler(BaseHandler):
except
CodeMessageException
as
e
:
if
e
.
code
!=
404
:
logger
.
exception
(
"
Failed to get displayname
"
)
raise
except
Exception
:
logger
.
exception
(
"
Failed to get displayname
"
)
...
...
@@ -157,10 +176,14 @@ class ProfileHandler(BaseHandler):
@defer.inlineCallbacks
def
get_avatar_url
(
self
,
target_user
):
if
self
.
hs
.
is_mine
(
target_user
):
avatar_url
=
yield
self
.
store
.
get_profile_avatar_url
(
target_user
.
localpart
)
try
:
avatar_url
=
yield
self
.
store
.
get_profile_avatar_url
(
target_user
.
localpart
)
except
StoreError
as
e
:
if
e
.
code
==
404
:
raise
SynapseError
(
404
,
"
Profile was not found
"
,
Codes
.
NOT_FOUND
)
raise
defer
.
returnValue
(
avatar_url
)
else
:
try
:
...
...
@@ -213,16 +236,20 @@ class ProfileHandler(BaseHandler):
just_field
=
args
.
get
(
"
field
"
,
None
)
response
=
{}
try
:
if
just_field
is
None
or
just_field
==
"
displayname
"
:
response
[
"
displayname
"
]
=
yield
self
.
store
.
get_profile_displayname
(
user
.
localpart
)
if
just_field
is
None
or
just_field
==
"
displayname
"
:
response
[
"
displayname
"
]
=
yield
self
.
store
.
get_profile_displayname
(
user
.
localpart
)
if
just_field
is
None
or
just_field
==
"
avatar_url
"
:
response
[
"
avatar_url
"
]
=
yield
self
.
store
.
get_profile_avatar_url
(
user
.
localpart
)
if
just_field
is
None
or
just_field
==
"
avatar_url
"
:
response
[
"
avatar_url
"
]
=
yield
self
.
store
.
get_profile_avatar_url
(
user
.
localpart
)
except
StoreError
as
e
:
if
e
.
code
==
404
:
raise
SynapseError
(
404
,
"
Profile was not found
"
,
Codes
.
NOT_FOUND
)
raise
defer
.
returnValue
(
response
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment