mirror of
https://github.com/m1k1o/neko.git
synced 2024-07-24 14:40:50 +12:00
plugins generic only.
This commit is contained in:
parent
91c8f0886b
commit
a31ad44bb8
@ -2,6 +2,7 @@ package auth
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net/http"
|
||||
|
||||
"gitlab.com/demodesk/neko/server/pkg/types"
|
||||
@ -69,3 +70,19 @@ func CanAccessClipboardOnly(w http.ResponseWriter, r *http.Request) (context.Con
|
||||
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func PluginsGenericOnly[V comparable](key string, value V) func(w http.ResponseWriter, r *http.Request) (context.Context, error) {
|
||||
return func(w http.ResponseWriter, r *http.Request) (context.Context, error) {
|
||||
session, ok := GetSession(r)
|
||||
if !ok {
|
||||
return nil, utils.HttpForbidden("session not found")
|
||||
}
|
||||
|
||||
plugins := session.Profile().Plugins
|
||||
if val, ok := plugins[key].(V); !ok || val != value {
|
||||
return nil, utils.HttpForbidden(fmt.Sprintf("%s is set to %v; expected %v", key, value, val))
|
||||
}
|
||||
|
||||
return nil, nil
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user