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"
|
2020-11-23 19:39:44 +01:00
|
|
|
"gorm.io/gorm"
|
2020-01-31 23:30:34 +01:00
|
|
|
)
|
|
|
|
|
2020-11-23 19:39:44 +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)
|
|
|
|
}
|
|
|
|
}
|