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

23 lines
546 B
Go
Raw Normal View History

2020-01-31 23:30:34 +01:00
package api
import (
"context"
"errors"
"github.com/99designs/gqlgen/graphql"
"github.com/viktorstrate/photoview/api/graphql/auth"
"gorm.io/gorm"
2020-01-31 23:30:34 +01:00
)
func IsAdmin(database *gorm.DB) func(ctx context.Context, obj interface{}, next graphql.Resolver) (res interface{}, err error) {
2020-01-31 23:30:34 +01:00
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)
}
}