24 lines
538 B
Go
24 lines
538 B
Go
|
package queries
|
||
|
|
||
|
type Query struct {
|
||
|
ID string
|
||
|
Path string
|
||
|
Meta *Metadata
|
||
|
Data string
|
||
|
}
|
||
|
|
||
|
// IsPermitted returns true if a query is allowed to execute for a given db context
|
||
|
func (q Query) IsPermitted(host, user, database, mode string) bool {
|
||
|
// All fields must be provided for matching
|
||
|
if q.Meta == nil || host == "" || user == "" || database == "" || mode == "" {
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
meta := q.Meta
|
||
|
|
||
|
return meta.Host.matches(host) &&
|
||
|
meta.User.matches(user) &&
|
||
|
meta.Database.matches(database) &&
|
||
|
meta.Mode.matches(mode)
|
||
|
}
|