This commit is contained in:
lbenedar
2026-03-20 18:59:26 +03:00
parent ff9c8f7315
commit a441b32900
4 changed files with 31 additions and 6 deletions

View File

@@ -150,3 +150,23 @@ func (app *application) requireActivatedUser(next http.HandlerFunc) http.Handler
})
return app.requireAuthenticatedUser(fn)
}
func (app *application) requirePermissions(code string, next http.HandlerFunc) http.HandlerFunc {
fn := func(w http.ResponseWriter, r *http.Request) {
user := app.contextGetUser(r)
permissions, err := app.models.Permissions.GetAllForUser(user.ID)
if err != nil {
app.serverErrorResponse(w, r, err)
return
}
if !permissions.Include(code) {
app.notPermittedResponse(w, r)
return
}
next.ServeHTTP(w, r)
}
return app.requireActivatedUser(fn)
}