diff --git a/common/eventcontent.go b/common/eventcontent.go index c07c56276..f3817ba68 100644 --- a/common/eventcontent.go +++ b/common/eventcontent.go @@ -48,6 +48,7 @@ func InitialPowerLevelsContent(roomCreator string) (c gomatrixserverlib.PowerLev "m.room.history_visibility": 100, "m.room.canonical_alias": 50, "m.room.avatar": 50, + "m.room.aliases": 0, // anyone can publish aliases by default. Has to be 0 else state_default is used. } c.Users = map[string]int64{roomCreator: 100} return c diff --git a/publicroomsapi/directory/directory.go b/publicroomsapi/directory/directory.go index 82179e921..837018e64 100644 --- a/publicroomsapi/directory/directory.go +++ b/publicroomsapi/directory/directory.go @@ -94,16 +94,13 @@ func SetVisibility( } // NOTSPEC: Check if the user's power is greater than power required to change m.room.aliases event - // p2p relies on anyone being able to publish rooms. - /* - power, _ := gomatrixserverlib.NewPowerLevelContentFromEvent(queryEventsRes.StateEvents[0].Event) - if power.UserLevel(dev.UserID) < power.EventLevel(gomatrixserverlib.MRoomAliases, true) { - return util.JSONResponse{ - Code: http.StatusForbidden, - JSON: jsonerror.Forbidden("userID doesn't have power level to change visibility"), - } - } - */ + power, _ := gomatrixserverlib.NewPowerLevelContentFromEvent(queryEventsRes.StateEvents[0].Event) + if power.UserLevel(dev.UserID) < power.EventLevel(gomatrixserverlib.MRoomAliases, true) { + return util.JSONResponse{ + Code: http.StatusForbidden, + JSON: jsonerror.Forbidden("userID doesn't have power level to change visibility"), + } + } var v roomVisibility if reqErr := httputil.UnmarshalJSONRequest(req, &v); reqErr != nil {