FILE / Unmei/Backend
v1/tokens_routes.go
Исходный файл и его история в репозитории.
39 lines
717 B
Go
39 lines
717 B
Go
package v1
|
|
|
|
import (
|
|
"github.com/gorilla/mux"
|
|
"net/http"
|
|
)
|
|
|
|
func RegisterTokensRouter(r *mux.Router) {
|
|
sub := r.PathPrefix("/tokens").Subrouter()
|
|
|
|
sub.HandleFunc("/auth", auth)
|
|
sub.HandleFunc("/apps", resolveApps)
|
|
sub.HandleFunc("/apps/{id:[0-9]+}", auth)
|
|
}
|
|
|
|
func auth(w http.ResponseWriter, r *http.Request) {
|
|
tokenCookie, err := r.Cookie("token")
|
|
if err == http.ErrNoCookie || len(tokenCookie.Value) == 0 {
|
|
Unauthorized.Ferror(w)
|
|
return
|
|
}
|
|
|
|
|
|
}
|
|
|
|
func resolveApps(w http.ResponseWriter, r *http.Request) {
|
|
user, err := FetchCurrentUser(r)
|
|
if err != nil {
|
|
Error(w, err)
|
|
return
|
|
}
|
|
if !hasPermission(user, "apps") {
|
|
NoAccess.Ferror(w)
|
|
return
|
|
}
|
|
apps, err := FetchApps()
|
|
Response(w, err, apps)
|
|
}
|