mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-04 11:04:50 -04:00
synapse.api.auth.Auth
cleanup: make permission-related methods use Requester
instead of the UserID
(#13024)
Part of #13019 This changes all the permission-related methods to rely on the Requester instead of the UserID. This is a first step towards enabling scoped access tokens at some point, since I expect the Requester to have scope-related informations in it. It also changes methods which figure out the user/device/appservice out of the access token to return a Requester instead of something else. This avoids having store-related objects in the methods signatures.
This commit is contained in:
parent
94375f7a91
commit
3dd175b628
26 changed files with 202 additions and 207 deletions
|
@ -19,7 +19,7 @@ from typing import Iterable, Pattern
|
|||
from synapse.api.auth import Auth
|
||||
from synapse.api.errors import AuthError
|
||||
from synapse.http.site import SynapseRequest
|
||||
from synapse.types import UserID
|
||||
from synapse.types import Requester
|
||||
|
||||
|
||||
def admin_patterns(path_regex: str, version: str = "v1") -> Iterable[Pattern]:
|
||||
|
@ -48,19 +48,19 @@ async def assert_requester_is_admin(auth: Auth, request: SynapseRequest) -> None
|
|||
AuthError if the requester is not a server admin
|
||||
"""
|
||||
requester = await auth.get_user_by_req(request)
|
||||
await assert_user_is_admin(auth, requester.user)
|
||||
await assert_user_is_admin(auth, requester)
|
||||
|
||||
|
||||
async def assert_user_is_admin(auth: Auth, user_id: UserID) -> None:
|
||||
async def assert_user_is_admin(auth: Auth, requester: Requester) -> None:
|
||||
"""Verify that the given user is an admin user
|
||||
|
||||
Args:
|
||||
auth: Auth singleton
|
||||
user_id: user to check
|
||||
requester: The user making the request, according to the access token.
|
||||
|
||||
Raises:
|
||||
AuthError if the user is not a server admin
|
||||
"""
|
||||
is_admin = await auth.is_server_admin(user_id)
|
||||
is_admin = await auth.is_server_admin(requester)
|
||||
if not is_admin:
|
||||
raise AuthError(HTTPStatus.FORBIDDEN, "You are not a server admin")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue