1
Fork 0

Fix checking for username when token is present.

This commit is contained in:
Juliusz Chroboczek 2022-04-29 01:36:02 +02:00
parent 0416976e20
commit fd228b09c2
1 changed files with 7 additions and 5 deletions

View File

@ -1075,11 +1075,10 @@ func GetDescription(name string) (*Description, error) {
}
func (desc *Description) GetPermission(group string, creds ClientCredentials) (string, []string, error) {
if creds.Token == "" {
if !desc.AllowAnonymous && creds.Username == "" {
return "", nil, ErrAnonymousNotAuthorised
}
if creds.Token == "" {
if found, good := matchClient(group, creds, desc.Op); found {
if good {
var p []string
@ -1111,6 +1110,9 @@ func (desc *Description) GetPermission(group string, creds ClientCredentials) (s
log.Printf("Token authentication: %v", err)
return "", nil, ErrNotAuthorised
}
if !desc.AllowAnonymous && sub == "" {
return "", nil, ErrAnonymousNotAuthorised
}
conf, err := GetConfiguration()
if err != nil {
log.Printf("Read config.json: %v", err)
@ -1154,7 +1156,7 @@ type Status struct {
ClientCount *int `json:"clientCount,omitempty"`
}
func (g *Group) Status (authentified bool) Status {
func (g *Group) Status(authentified bool) Status {
desc := g.Description()
d := Status{
Name: g.name,