fix(licenses): remove repo unit requirement from licenses routes
Universal: PR Check / Branch Policy (pull_request) Successful in 13s
Branch Policy Check / Verify merge target (pull_request) Successful in 14s
Branch Cleanup / Delete merged branch (pull_request) Successful in 7s
PR RC Release / Build RC Release (pull_request) Successful in 15s
Universal: PR Check / Validate PR (pull_request) Failing after 22s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Branch Policy (pull_request) Successful in 13s
Branch Policy Check / Verify merge target (pull_request) Successful in 14s
Branch Cleanup / Delete merged branch (pull_request) Successful in 7s
PR RC Release / Build RC Release (pull_request) Successful in 15s
Universal: PR Check / Validate PR (pull_request) Failing after 22s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
The licenses feature is gated by org-level LicensingEnabled config, not by per-repo unit enablement. Requiring TypeLicenses unit on repos caused 404s since it wasn't in DefaultRepoUnits. Write permissions are still enforced in handlers via CanWrite(TypeLicenses). Org routes retain reqUnitAccess for team-level permission control. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
+12
-12
@@ -1522,20 +1522,20 @@ func registerWebRoutes(m *web.Router, webAuth *AuthMiddleware) {
|
||||
// end "/{username}/{reponame}": update server
|
||||
|
||||
// "/{username}/{reponame}": licenses page
|
||||
// Note: page visibility is controlled by LicensingEnabled (org config).
|
||||
// Write permissions are checked in handlers via CanWrite(TypeLicenses).
|
||||
m.Group("/{username}/{reponame}/licenses", func() {
|
||||
m.Get("", repo.Licenses)
|
||||
m.Group("", func() {
|
||||
m.Post("/packages", repo.LicensesCreatePackage)
|
||||
m.Get("/packages/{id}/edit", repo.LicensesEditPackage)
|
||||
m.Post("/packages/{id}/edit", repo.LicensesEditPackagePost)
|
||||
m.Post("/packages/{id}/delete", repo.LicensesDeletePackage)
|
||||
m.Post("/keys/generate", repo.LicensesGenerateKey)
|
||||
m.Get("/keys/{id}/edit", repo.LicensesEditKey)
|
||||
m.Post("/keys/{id}/edit", repo.LicensesEditKeyPost)
|
||||
m.Post("/keys/{id}/revoke", repo.LicensesRevokeKey)
|
||||
m.Post("/keys/{id}/renew", repo.LicensesRenewKey)
|
||||
}, context.RequireUnitWriter(unit.TypeLicenses))
|
||||
}, optSignIn, context.RepoAssignment, context.RequireUnitReader(unit.TypeLicenses))
|
||||
m.Post("/packages", repo.LicensesCreatePackage)
|
||||
m.Get("/packages/{id}/edit", repo.LicensesEditPackage)
|
||||
m.Post("/packages/{id}/edit", repo.LicensesEditPackagePost)
|
||||
m.Post("/packages/{id}/delete", repo.LicensesDeletePackage)
|
||||
m.Post("/keys/generate", repo.LicensesGenerateKey)
|
||||
m.Get("/keys/{id}/edit", repo.LicensesEditKey)
|
||||
m.Post("/keys/{id}/edit", repo.LicensesEditKeyPost)
|
||||
m.Post("/keys/{id}/revoke", repo.LicensesRevokeKey)
|
||||
m.Post("/keys/{id}/renew", repo.LicensesRenewKey)
|
||||
}, optSignIn, context.RepoAssignment)
|
||||
// end "/{username}/{reponame}": licenses
|
||||
|
||||
m.Group("/{username}/{reponame}", func() { // to maintain compatibility with old attachments
|
||||
|
||||
Reference in New Issue
Block a user