1
Fork 0
photoview/api/graphql/directive.go

23 lines
545 B
Go

package api
import (
"context"
"database/sql"
"errors"
"github.com/99designs/gqlgen/graphql"
"github.com/viktorstrate/photoview/api/graphql/auth"
)
func IsAdmin(database *sql.DB) func(ctx context.Context, obj interface{}, next graphql.Resolver) (res interface{}, err error) {
return func(ctx context.Context, obj interface{}, next graphql.Resolver) (res interface{}, err error) {
user := auth.UserFromContext(ctx)
if user == nil || user.Admin == false {
return nil, errors.New("user must be admin")
}
return next(ctx)
}
}