mirror of
https://github.com/netbirdio/netbird.git
synced 2024-11-08 01:04:47 +01:00
06055af361
This PR brings user invites logic to the Management service via HTTP API. The POST /users/ API endpoint creates a new user in the Idp and then in the local storage. Once the invited user signs ups, the account invitation is redeemed. There are a few limitations. This works only with an enabled IdP manager. Users that already have a registered account can't be invited.
53 lines
1.2 KiB
Go
53 lines
1.2 KiB
Go
package server
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
const (
|
|
// UserAlreadyExists indicates that user already exists
|
|
UserAlreadyExists ErrorType = 1
|
|
// AccountNotFound indicates that specified account hasn't been found
|
|
AccountNotFound ErrorType = iota
|
|
// PreconditionFailed indicates that some pre-condition for the operation hasn't been fulfilled
|
|
PreconditionFailed ErrorType = iota
|
|
)
|
|
|
|
// ErrorType is a type of the Error
|
|
type ErrorType int32
|
|
|
|
// Error is an internal error
|
|
type Error struct {
|
|
errorType ErrorType
|
|
message string
|
|
}
|
|
|
|
// Type returns the Type of the error
|
|
func (e *Error) Type() ErrorType {
|
|
return e.errorType
|
|
}
|
|
|
|
// Error is an error string
|
|
func (e *Error) Error() string {
|
|
return e.message
|
|
}
|
|
|
|
// Errorf returns Error(errorType, fmt.Sprintf(format, a...)).
|
|
func Errorf(errorType ErrorType, format string, a ...interface{}) error {
|
|
return &Error{
|
|
errorType: errorType,
|
|
message: fmt.Sprintf(format, a...),
|
|
}
|
|
}
|
|
|
|
// FromError returns Error, true if the provided error is of type of Error. nil, false otherwise
|
|
func FromError(err error) (s *Error, ok bool) {
|
|
if err == nil {
|
|
return nil, true
|
|
}
|
|
if e, ok := err.(*Error); ok {
|
|
return e, true
|
|
}
|
|
return nil, false
|
|
}
|