make rank_requests/status auth-free

This commit is contained in:
Howl 2016-09-24 19:45:07 +02:00
parent 3262bbea74
commit 0e27793d25
2 changed files with 7 additions and 4 deletions

View File

@ -91,12 +91,12 @@ func Start(conf common.Conf, dbO *sqlx.DB) *gin.Engine {
gv1.GET("/blog/posts", Method(v1.BlogPostsGET)) gv1.GET("/blog/posts", Method(v1.BlogPostsGET))
gv1.GET("/blog/posts/content", Method(v1.BlogPostsContentGET)) gv1.GET("/blog/posts/content", Method(v1.BlogPostsContentGET))
gv1.GET("/scores", Method(v1.ScoresGET)) gv1.GET("/scores", Method(v1.ScoresGET))
gv1.GET("/beatmaps/rank_requests/status", Method(v1.BeatmapRankRequestsStatusGET))
// ReadConfidential privilege required // ReadConfidential privilege required
gv1.GET("/friends", Method(v1.FriendsGET, common.PrivilegeReadConfidential)) gv1.GET("/friends", Method(v1.FriendsGET, common.PrivilegeReadConfidential))
gv1.GET("/friends/with", Method(v1.FriendsWithGET, common.PrivilegeReadConfidential)) gv1.GET("/friends/with", Method(v1.FriendsWithGET, common.PrivilegeReadConfidential))
gv1.GET("/users/self/donor_info", Method(v1.UsersSelfDonorInfoGET, common.PrivilegeReadConfidential)) gv1.GET("/users/self/donor_info", Method(v1.UsersSelfDonorInfoGET, common.PrivilegeReadConfidential))
gv1.GET("/beatmaps/rank_requests/status", Method(v1.BeatmapRankRequestsStatusGET, common.PrivilegeReadConfidential))
// Write privilege required // Write privilege required
gv1.GET("/friends/add", Method(v1.FriendsAddGET, common.PrivilegeWrite)) gv1.GET("/friends/add", Method(v1.FriendsAddGET, common.PrivilegeWrite))

View File

@ -29,7 +29,10 @@ func BeatmapRankRequestsStatusGET(md common.MethodData) common.CodeMessager {
return Err500 return Err500
} }
var r rankRequestsStatusResponse var r rankRequestsStatusResponse
if md.ID() != 0 { // if it's not auth-free access and we have got ReadConfidential, we can
// know if this user can submit beatmaps or not.
hasConfid := md.ID() != 0 && md.User.TokenPrivileges&common.PrivilegeReadConfidential > 0
if hasConfid {
r.SubmittedByUser = new(int) r.SubmittedByUser = new(int)
} }
isFirst := true isFirst := true
@ -45,7 +48,7 @@ func BeatmapRankRequestsStatusGET(md common.MethodData) common.CodeMessager {
} }
// if the user submitted this rank request, increase the number of // if the user submitted this rank request, increase the number of
// rank requests submitted by this user // rank requests submitted by this user
if user == md.ID() { if user == md.ID() && r.SubmittedByUser != nil {
(*r.SubmittedByUser)++ (*r.SubmittedByUser)++
} }
// also, if this is the first result, it means it will be the next to // also, if this is the first result, it means it will be the next to
@ -59,7 +62,7 @@ func BeatmapRankRequestsStatusGET(md common.MethodData) common.CodeMessager {
} }
r.QueueSize = c.RankQueueSize r.QueueSize = c.RankQueueSize
r.MaxPerUser = c.BeatmapRequestsPerUser r.MaxPerUser = c.BeatmapRequestsPerUser
if md.ID() != 0 { if hasConfid {
x := r.Submitted < r.QueueSize && *r.SubmittedByUser < r.MaxPerUser x := r.Submitted < r.QueueSize && *r.SubmittedByUser < r.MaxPerUser
r.CanSubmit = &x r.CanSubmit = &x
} }