aboutsummaryrefslogtreecommitdiff
path: root/clientapi
diff options
context:
space:
mode:
authorKegsay <kegan@matrix.org>2021-01-22 16:08:47 +0000
committerGitHub <noreply@github.com>2021-01-22 16:08:47 +0000
commit93942f8ab62ffdb55888d5d35adef6fe73e3ea59 (patch)
treee261374817728e22c5e4937975ea42cc71e54f9b /clientapi
parent0571d395b51d7788c692b916cd7ba9249a494ed1 (diff)
Gate peeking behind msc flags (#1731)
Diffstat (limited to 'clientapi')
-rw-r--r--clientapi/clientapi.go3
-rw-r--r--clientapi/routing/routing.go32
2 files changed, 20 insertions, 15 deletions
diff --git a/clientapi/clientapi.go b/clientapi/clientapi.go
index 8a2ea8fc..2c4fa5d6 100644
--- a/clientapi/clientapi.go
+++ b/clientapi/clientapi.go
@@ -46,6 +46,7 @@ func AddPublicRoutes(
userAPI userapi.UserInternalAPI,
keyAPI keyserverAPI.KeyInternalAPI,
extRoomsProvider api.ExtraPublicRoomsProvider,
+ mscCfg *config.MSCs,
) {
_, producer := kafka.SetupConsumerProducer(&cfg.Matrix.Kafka)
@@ -57,6 +58,6 @@ func AddPublicRoutes(
routing.Setup(
router, cfg, eduInputAPI, rsAPI, asAPI,
accountsDB, userAPI, federation,
- syncProducer, transactionsCache, fsAPI, keyAPI, extRoomsProvider,
+ syncProducer, transactionsCache, fsAPI, keyAPI, extRoomsProvider, mscCfg,
)
}
diff --git a/clientapi/routing/routing.go b/clientapi/routing/routing.go
index 7c320253..a56359b4 100644
--- a/clientapi/routing/routing.go
+++ b/clientapi/routing/routing.go
@@ -58,6 +58,7 @@ func Setup(
federationSender federationSenderAPI.FederationSenderInternalAPI,
keyAPI keyserverAPI.KeyInternalAPI,
extRoomsProvider api.ExtraPublicRoomsProvider,
+ mscCfg *config.MSCs,
) {
rateLimits := newRateLimits(&cfg.RateLimiting)
userInteractiveAuth := auth.NewUserInteractive(accountDB.GetAccountByPassword, cfg)
@@ -110,20 +111,23 @@ func Setup(
)
}),
).Methods(http.MethodPost, http.MethodOptions)
- r0mux.Handle("/peek/{roomIDOrAlias}",
- httputil.MakeAuthAPI(gomatrixserverlib.Peek, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
- if r := rateLimits.rateLimit(req); r != nil {
- return *r
- }
- vars, err := httputil.URLDecodeMapValues(mux.Vars(req))
- if err != nil {
- return util.ErrorResponse(err)
- }
- return PeekRoomByIDOrAlias(
- req, device, rsAPI, accountDB, vars["roomIDOrAlias"],
- )
- }),
- ).Methods(http.MethodPost, http.MethodOptions)
+
+ if mscCfg.Enabled("msc2753") {
+ r0mux.Handle("/peek/{roomIDOrAlias}",
+ httputil.MakeAuthAPI(gomatrixserverlib.Peek, userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
+ if r := rateLimits.rateLimit(req); r != nil {
+ return *r
+ }
+ vars, err := httputil.URLDecodeMapValues(mux.Vars(req))
+ if err != nil {
+ return util.ErrorResponse(err)
+ }
+ return PeekRoomByIDOrAlias(
+ req, device, rsAPI, accountDB, vars["roomIDOrAlias"],
+ )
+ }),
+ ).Methods(http.MethodPost, http.MethodOptions)
+ }
r0mux.Handle("/joined_rooms",
httputil.MakeAuthAPI("joined_rooms", userAPI, func(req *http.Request, device *userapi.Device) util.JSONResponse {
return GetJoinedRooms(req, device, rsAPI)