feat add tenant users
This commit is contained in:
@@ -16,8 +16,6 @@ import (
|
||||
const (
|
||||
// RoleUser is a Role of type user.
|
||||
RoleUser Role = "user"
|
||||
// RoleTenantAdmin is a Role of type tenant_admin.
|
||||
RoleTenantAdmin Role = "tenant_admin"
|
||||
// RoleSuperAdmin is a Role of type super_admin.
|
||||
RoleSuperAdmin Role = "super_admin"
|
||||
)
|
||||
@@ -26,7 +24,6 @@ var ErrInvalidRole = fmt.Errorf("not a valid Role, try [%s]", strings.Join(_Role
|
||||
|
||||
var _RoleNames = []string{
|
||||
string(RoleUser),
|
||||
string(RoleTenantAdmin),
|
||||
string(RoleSuperAdmin),
|
||||
}
|
||||
|
||||
@@ -41,7 +38,6 @@ func RoleNames() []string {
|
||||
func RoleValues() []Role {
|
||||
return []Role{
|
||||
RoleUser,
|
||||
RoleTenantAdmin,
|
||||
RoleSuperAdmin,
|
||||
}
|
||||
}
|
||||
@@ -59,9 +55,8 @@ func (x Role) IsValid() bool {
|
||||
}
|
||||
|
||||
var _RoleValue = map[string]Role{
|
||||
"user": RoleUser,
|
||||
"tenant_admin": RoleTenantAdmin,
|
||||
"super_admin": RoleSuperAdmin,
|
||||
"user": RoleUser,
|
||||
"super_admin": RoleSuperAdmin,
|
||||
}
|
||||
|
||||
// ParseRole attempts to convert a string to a Role.
|
||||
@@ -178,6 +173,331 @@ func (x NullRoleStr) Value() (driver.Value, error) {
|
||||
return x.Role.String(), nil
|
||||
}
|
||||
|
||||
const (
|
||||
// TenantStatusPendingVerify is a TenantStatus of type pending_verify.
|
||||
TenantStatusPendingVerify TenantStatus = "pending_verify"
|
||||
// TenantStatusVerified is a TenantStatus of type verified.
|
||||
TenantStatusVerified TenantStatus = "verified"
|
||||
// TenantStatusBanned is a TenantStatus of type banned.
|
||||
TenantStatusBanned TenantStatus = "banned"
|
||||
)
|
||||
|
||||
var ErrInvalidTenantStatus = fmt.Errorf("not a valid TenantStatus, try [%s]", strings.Join(_TenantStatusNames, ", "))
|
||||
|
||||
var _TenantStatusNames = []string{
|
||||
string(TenantStatusPendingVerify),
|
||||
string(TenantStatusVerified),
|
||||
string(TenantStatusBanned),
|
||||
}
|
||||
|
||||
// TenantStatusNames returns a list of possible string values of TenantStatus.
|
||||
func TenantStatusNames() []string {
|
||||
tmp := make([]string, len(_TenantStatusNames))
|
||||
copy(tmp, _TenantStatusNames)
|
||||
return tmp
|
||||
}
|
||||
|
||||
// TenantStatusValues returns a list of the values for TenantStatus
|
||||
func TenantStatusValues() []TenantStatus {
|
||||
return []TenantStatus{
|
||||
TenantStatusPendingVerify,
|
||||
TenantStatusVerified,
|
||||
TenantStatusBanned,
|
||||
}
|
||||
}
|
||||
|
||||
// String implements the Stringer interface.
|
||||
func (x TenantStatus) String() string {
|
||||
return string(x)
|
||||
}
|
||||
|
||||
// IsValid provides a quick way to determine if the typed value is
|
||||
// part of the allowed enumerated values
|
||||
func (x TenantStatus) IsValid() bool {
|
||||
_, err := ParseTenantStatus(string(x))
|
||||
return err == nil
|
||||
}
|
||||
|
||||
var _TenantStatusValue = map[string]TenantStatus{
|
||||
"pending_verify": TenantStatusPendingVerify,
|
||||
"verified": TenantStatusVerified,
|
||||
"banned": TenantStatusBanned,
|
||||
}
|
||||
|
||||
// ParseTenantStatus attempts to convert a string to a TenantStatus.
|
||||
func ParseTenantStatus(name string) (TenantStatus, error) {
|
||||
if x, ok := _TenantStatusValue[name]; ok {
|
||||
return x, nil
|
||||
}
|
||||
return TenantStatus(""), fmt.Errorf("%s is %w", name, ErrInvalidTenantStatus)
|
||||
}
|
||||
|
||||
var errTenantStatusNilPtr = errors.New("value pointer is nil") // one per type for package clashes
|
||||
|
||||
// Scan implements the Scanner interface.
|
||||
func (x *TenantStatus) Scan(value interface{}) (err error) {
|
||||
if value == nil {
|
||||
*x = TenantStatus("")
|
||||
return
|
||||
}
|
||||
|
||||
// A wider range of scannable types.
|
||||
// driver.Value values at the top of the list for expediency
|
||||
switch v := value.(type) {
|
||||
case string:
|
||||
*x, err = ParseTenantStatus(v)
|
||||
case []byte:
|
||||
*x, err = ParseTenantStatus(string(v))
|
||||
case TenantStatus:
|
||||
*x = v
|
||||
case *TenantStatus:
|
||||
if v == nil {
|
||||
return errTenantStatusNilPtr
|
||||
}
|
||||
*x = *v
|
||||
case *string:
|
||||
if v == nil {
|
||||
return errTenantStatusNilPtr
|
||||
}
|
||||
*x, err = ParseTenantStatus(*v)
|
||||
default:
|
||||
return errors.New("invalid type for TenantStatus")
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// Value implements the driver Valuer interface.
|
||||
func (x TenantStatus) Value() (driver.Value, error) {
|
||||
return x.String(), nil
|
||||
}
|
||||
|
||||
// Set implements the Golang flag.Value interface func.
|
||||
func (x *TenantStatus) Set(val string) error {
|
||||
v, err := ParseTenantStatus(val)
|
||||
*x = v
|
||||
return err
|
||||
}
|
||||
|
||||
// Get implements the Golang flag.Getter interface func.
|
||||
func (x *TenantStatus) Get() interface{} {
|
||||
return *x
|
||||
}
|
||||
|
||||
// Type implements the github.com/spf13/pFlag Value interface.
|
||||
func (x *TenantStatus) Type() string {
|
||||
return "TenantStatus"
|
||||
}
|
||||
|
||||
type NullTenantStatus struct {
|
||||
TenantStatus TenantStatus
|
||||
Valid bool
|
||||
}
|
||||
|
||||
func NewNullTenantStatus(val interface{}) (x NullTenantStatus) {
|
||||
err := x.Scan(val) // yes, we ignore this error, it will just be an invalid value.
|
||||
_ = err // make any errcheck linters happy
|
||||
return
|
||||
}
|
||||
|
||||
// Scan implements the Scanner interface.
|
||||
func (x *NullTenantStatus) Scan(value interface{}) (err error) {
|
||||
if value == nil {
|
||||
x.TenantStatus, x.Valid = TenantStatus(""), false
|
||||
return
|
||||
}
|
||||
|
||||
err = x.TenantStatus.Scan(value)
|
||||
x.Valid = (err == nil)
|
||||
return
|
||||
}
|
||||
|
||||
// Value implements the driver Valuer interface.
|
||||
func (x NullTenantStatus) Value() (driver.Value, error) {
|
||||
if !x.Valid {
|
||||
return nil, nil
|
||||
}
|
||||
// driver.Value accepts int64 for int values.
|
||||
return string(x.TenantStatus), nil
|
||||
}
|
||||
|
||||
type NullTenantStatusStr struct {
|
||||
NullTenantStatus
|
||||
}
|
||||
|
||||
func NewNullTenantStatusStr(val interface{}) (x NullTenantStatusStr) {
|
||||
x.Scan(val) // yes, we ignore this error, it will just be an invalid value.
|
||||
return
|
||||
}
|
||||
|
||||
// Value implements the driver Valuer interface.
|
||||
func (x NullTenantStatusStr) Value() (driver.Value, error) {
|
||||
if !x.Valid {
|
||||
return nil, nil
|
||||
}
|
||||
return x.TenantStatus.String(), nil
|
||||
}
|
||||
|
||||
const (
|
||||
// TenantUserRoleMember is a TenantUserRole of type member.
|
||||
TenantUserRoleMember TenantUserRole = "member"
|
||||
// TenantUserRoleTenantAdmin is a TenantUserRole of type tenant_admin.
|
||||
TenantUserRoleTenantAdmin TenantUserRole = "tenant_admin"
|
||||
)
|
||||
|
||||
var ErrInvalidTenantUserRole = fmt.Errorf("not a valid TenantUserRole, try [%s]", strings.Join(_TenantUserRoleNames, ", "))
|
||||
|
||||
var _TenantUserRoleNames = []string{
|
||||
string(TenantUserRoleMember),
|
||||
string(TenantUserRoleTenantAdmin),
|
||||
}
|
||||
|
||||
// TenantUserRoleNames returns a list of possible string values of TenantUserRole.
|
||||
func TenantUserRoleNames() []string {
|
||||
tmp := make([]string, len(_TenantUserRoleNames))
|
||||
copy(tmp, _TenantUserRoleNames)
|
||||
return tmp
|
||||
}
|
||||
|
||||
// TenantUserRoleValues returns a list of the values for TenantUserRole
|
||||
func TenantUserRoleValues() []TenantUserRole {
|
||||
return []TenantUserRole{
|
||||
TenantUserRoleMember,
|
||||
TenantUserRoleTenantAdmin,
|
||||
}
|
||||
}
|
||||
|
||||
// String implements the Stringer interface.
|
||||
func (x TenantUserRole) String() string {
|
||||
return string(x)
|
||||
}
|
||||
|
||||
// IsValid provides a quick way to determine if the typed value is
|
||||
// part of the allowed enumerated values
|
||||
func (x TenantUserRole) IsValid() bool {
|
||||
_, err := ParseTenantUserRole(string(x))
|
||||
return err == nil
|
||||
}
|
||||
|
||||
var _TenantUserRoleValue = map[string]TenantUserRole{
|
||||
"member": TenantUserRoleMember,
|
||||
"tenant_admin": TenantUserRoleTenantAdmin,
|
||||
}
|
||||
|
||||
// ParseTenantUserRole attempts to convert a string to a TenantUserRole.
|
||||
func ParseTenantUserRole(name string) (TenantUserRole, error) {
|
||||
if x, ok := _TenantUserRoleValue[name]; ok {
|
||||
return x, nil
|
||||
}
|
||||
return TenantUserRole(""), fmt.Errorf("%s is %w", name, ErrInvalidTenantUserRole)
|
||||
}
|
||||
|
||||
var errTenantUserRoleNilPtr = errors.New("value pointer is nil") // one per type for package clashes
|
||||
|
||||
// Scan implements the Scanner interface.
|
||||
func (x *TenantUserRole) Scan(value interface{}) (err error) {
|
||||
if value == nil {
|
||||
*x = TenantUserRole("")
|
||||
return
|
||||
}
|
||||
|
||||
// A wider range of scannable types.
|
||||
// driver.Value values at the top of the list for expediency
|
||||
switch v := value.(type) {
|
||||
case string:
|
||||
*x, err = ParseTenantUserRole(v)
|
||||
case []byte:
|
||||
*x, err = ParseTenantUserRole(string(v))
|
||||
case TenantUserRole:
|
||||
*x = v
|
||||
case *TenantUserRole:
|
||||
if v == nil {
|
||||
return errTenantUserRoleNilPtr
|
||||
}
|
||||
*x = *v
|
||||
case *string:
|
||||
if v == nil {
|
||||
return errTenantUserRoleNilPtr
|
||||
}
|
||||
*x, err = ParseTenantUserRole(*v)
|
||||
default:
|
||||
return errors.New("invalid type for TenantUserRole")
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// Value implements the driver Valuer interface.
|
||||
func (x TenantUserRole) Value() (driver.Value, error) {
|
||||
return x.String(), nil
|
||||
}
|
||||
|
||||
// Set implements the Golang flag.Value interface func.
|
||||
func (x *TenantUserRole) Set(val string) error {
|
||||
v, err := ParseTenantUserRole(val)
|
||||
*x = v
|
||||
return err
|
||||
}
|
||||
|
||||
// Get implements the Golang flag.Getter interface func.
|
||||
func (x *TenantUserRole) Get() interface{} {
|
||||
return *x
|
||||
}
|
||||
|
||||
// Type implements the github.com/spf13/pFlag Value interface.
|
||||
func (x *TenantUserRole) Type() string {
|
||||
return "TenantUserRole"
|
||||
}
|
||||
|
||||
type NullTenantUserRole struct {
|
||||
TenantUserRole TenantUserRole
|
||||
Valid bool
|
||||
}
|
||||
|
||||
func NewNullTenantUserRole(val interface{}) (x NullTenantUserRole) {
|
||||
err := x.Scan(val) // yes, we ignore this error, it will just be an invalid value.
|
||||
_ = err // make any errcheck linters happy
|
||||
return
|
||||
}
|
||||
|
||||
// Scan implements the Scanner interface.
|
||||
func (x *NullTenantUserRole) Scan(value interface{}) (err error) {
|
||||
if value == nil {
|
||||
x.TenantUserRole, x.Valid = TenantUserRole(""), false
|
||||
return
|
||||
}
|
||||
|
||||
err = x.TenantUserRole.Scan(value)
|
||||
x.Valid = (err == nil)
|
||||
return
|
||||
}
|
||||
|
||||
// Value implements the driver Valuer interface.
|
||||
func (x NullTenantUserRole) Value() (driver.Value, error) {
|
||||
if !x.Valid {
|
||||
return nil, nil
|
||||
}
|
||||
// driver.Value accepts int64 for int values.
|
||||
return string(x.TenantUserRole), nil
|
||||
}
|
||||
|
||||
type NullTenantUserRoleStr struct {
|
||||
NullTenantUserRole
|
||||
}
|
||||
|
||||
func NewNullTenantUserRoleStr(val interface{}) (x NullTenantUserRoleStr) {
|
||||
x.Scan(val) // yes, we ignore this error, it will just be an invalid value.
|
||||
return
|
||||
}
|
||||
|
||||
// Value implements the driver Valuer interface.
|
||||
func (x NullTenantUserRoleStr) Value() (driver.Value, error) {
|
||||
if !x.Valid {
|
||||
return nil, nil
|
||||
}
|
||||
return x.TenantUserRole.String(), nil
|
||||
}
|
||||
|
||||
const (
|
||||
// UserStatusPendingVerify is a UserStatus of type pending_verify.
|
||||
UserStatusPendingVerify UserStatus = "pending_verify"
|
||||
|
||||
@@ -8,9 +8,19 @@ package consts
|
||||
// // )
|
||||
|
||||
// swagger:enum Role
|
||||
// ENUM( user, tenant_admin, super_admin)
|
||||
// ENUM( user, super_admin)
|
||||
type Role string
|
||||
|
||||
// swagger:enum UserStatus
|
||||
// ENUM(pending_verify, verified, banned, )
|
||||
type UserStatus string
|
||||
|
||||
// tenants
|
||||
|
||||
// swagger:enum TenantStatus
|
||||
// ENUM( pending_verify, verified, banned )
|
||||
type TenantStatus string
|
||||
|
||||
// swagger:enum TenantUserRole
|
||||
// ENUM( member, tenant_admin)
|
||||
type TenantUserRole string
|
||||
|
||||
Reference in New Issue
Block a user