44 lines
1.0 KiB
Go
44 lines
1.0 KiB
Go
|
package auth
|
||
|
|
||
|
import (
|
||
|
"github.com/pkg/errors"
|
||
|
"go.signoz.io/signoz/pkg/query-service/constants"
|
||
|
"go.signoz.io/signoz/pkg/query-service/model"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
ErrorEmptyRequest = errors.New("Empty request")
|
||
|
ErrorInvalidEmail = errors.New("Invalid email")
|
||
|
ErrorInvalidRole = errors.New("Invalid role")
|
||
|
|
||
|
ErrorInvalidInviteToken = errors.New("Invalid invite token")
|
||
|
ErrorAskAdmin = errors.New("An invitation is needed to create an account. Please ask your admin (the person who has first installed SIgNoz) to send an invite.")
|
||
|
)
|
||
|
|
||
|
func isValidRole(role string) bool {
|
||
|
switch role {
|
||
|
case constants.AdminGroup, constants.EditorGroup, constants.ViewerGroup:
|
||
|
return true
|
||
|
}
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
func validateInviteRequest(req *model.InviteRequest) error {
|
||
|
if req == nil {
|
||
|
return ErrorEmptyRequest
|
||
|
}
|
||
|
if !isValidEmail(req.Email) {
|
||
|
return ErrorInvalidEmail
|
||
|
}
|
||
|
|
||
|
if !isValidRole(req.Role) {
|
||
|
return ErrorInvalidRole
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
// TODO(Ahsan): Implement check on email semantic.
|
||
|
func isValidEmail(email string) bool {
|
||
|
return true
|
||
|
}
|