aboutsummaryrefslogtreecommitdiffstats
path: root/routers/api
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2021-03-11 13:40:54 +0000
committerGitHub <noreply@github.com>2021-03-11 13:40:54 +0000
commitc8e5c79cfda7e4c36b1a98c1abd3cdb50bde9d77 (patch)
tree538c00f48c8d03979b0323b057cb7bd3ed19b969 /routers/api
parentbc423a1e8445c01b5f590b86657c9a49b0bfdd8c (diff)
downloadgitea-c8e5c79cfda7e4c36b1a98c1abd3cdb50bde9d77.tar.gz
gitea-c8e5c79cfda7e4c36b1a98c1abd3cdb50bde9d77.zip
Add ui.explore settings to control view of explore pages (2) (#14094)
This is an alternative PR to #13687. Add `[ui.explore]` settings to allow restricting the explore pages to logged in users only and to disable the users explore page. The two proposed settings are: - `REQUIRE_SIGNIN_VIEW`: Only allows access to the explore pages if the user is signed in. Also restricts - `/api/v1/user/search` - `/api/v1/users/{username}` - `/api/v1/users/{username}/repos` - but does not restrict `/api/v1/users/{username}/heatmap` - `DISABLE_USERS_PAGE`: Disables the /explore/users page Fix #2908 Close #13687 Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: 6543 <6543@obermui.de>
Diffstat (limited to 'routers/api')
-rw-r--r--routers/api/v1/api.go14
1 files changed, 11 insertions, 3 deletions
diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go
index a8499e0ee8..57bcdf49f6 100644
--- a/routers/api/v1/api.go
+++ b/routers/api/v1/api.go
@@ -204,6 +204,14 @@ func reqToken() func(ctx *context.APIContext) {
}
}
+func reqExploreSignIn() func(ctx *context.APIContext) {
+ return func(ctx *context.APIContext) {
+ if setting.Service.Explore.RequireSigninView && !ctx.IsSigned {
+ ctx.Error(http.StatusUnauthorized, "reqExploreSignIn", "you must be signed in to search for users")
+ }
+ }
+}
+
func reqBasicAuth() func(ctx *context.APIContext) {
return func(ctx *context.APIContext) {
if !ctx.Context.IsBasicAuth {
@@ -603,16 +611,16 @@ func Routes() *web.Route {
// Users
m.Group("/users", func() {
- m.Get("/search", user.Search)
+ m.Get("/search", reqExploreSignIn(), user.Search)
m.Group("/{username}", func() {
- m.Get("", user.GetInfo)
+ m.Get("", reqExploreSignIn(), user.GetInfo)
if setting.Service.EnableUserHeatmap {
m.Get("/heatmap", user.GetUserHeatmapData)
}
- m.Get("/repos", user.ListUserRepos)
+ m.Get("/repos", reqExploreSignIn(), user.ListUserRepos)
m.Group("/tokens", func() {
m.Combo("").Get(user.ListAccessTokens).
Post(bind(api.CreateAccessTokenOption{}), user.CreateAccessToken)