50 lines
866 B
Go
50 lines
866 B
Go
package users
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type User struct {
|
|
Name string `json:"name"`
|
|
UUID uuid.UUID `json:"uuid"`
|
|
}
|
|
|
|
type VLESSUsers []User
|
|
|
|
func (u VLESSUsers) Del(user string) VLESSUsers {
|
|
var newU VLESSUsers = make(VLESSUsers, 0, len(u))
|
|
for _, v := range u {
|
|
if v.Name != user {
|
|
newU = append(newU, v)
|
|
}
|
|
}
|
|
return newU
|
|
}
|
|
|
|
func (u VLESSUsers) checkInConfig(userName string) bool {
|
|
for _, v := range u {
|
|
if v.Name == userName {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (u VLESSUsers) Add(userName string) (VLESSUsers, error) {
|
|
|
|
if u.checkInConfig(userName) {
|
|
return nil, errors.New("пользователь уже добавлен в конфиг")
|
|
}
|
|
|
|
newUUID, err := uuid.NewRandom()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
newUser := User{
|
|
Name: userName,
|
|
UUID: newUUID,
|
|
}
|
|
return append(u, newUser), nil
|
|
}
|