mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-07 17:51:56 +08:00
NET-1064: Oauth User SignUp Approval Flow (#2874)
* add pending users api * insert user to pending users on first time oauth login * add pending user check on headless login * fix conflicting apis * no records error * add allowed emails domains for oauth singup to config * check if user is allowed to signup
This commit is contained in:
@@ -75,3 +75,47 @@ func GetSuperAdmin() (models.ReturnUser, error) {
|
||||
}
|
||||
return models.ReturnUser{}, errors.New("superadmin not found")
|
||||
}
|
||||
|
||||
func InsertPendingUser(u *models.User) error {
|
||||
data, err := json.Marshal(u)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return database.Insert(u.UserName, string(data), database.PENDING_USERS_TABLE_NAME)
|
||||
}
|
||||
|
||||
func DeletePendingUser(username string) error {
|
||||
return database.DeleteRecord(database.PENDING_USERS_TABLE_NAME, username)
|
||||
}
|
||||
|
||||
func IsPendingUser(username string) bool {
|
||||
records, err := database.FetchRecords(database.PENDING_USERS_TABLE_NAME)
|
||||
if err != nil {
|
||||
return false
|
||||
|
||||
}
|
||||
for _, record := range records {
|
||||
u := models.ReturnUser{}
|
||||
err := json.Unmarshal([]byte(record), &u)
|
||||
if err == nil && u.UserName == username {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func ListPendingUsers() ([]models.ReturnUser, error) {
|
||||
pendingUsers := []models.ReturnUser{}
|
||||
records, err := database.FetchRecords(database.PENDING_USERS_TABLE_NAME)
|
||||
if err != nil && !database.IsEmptyRecord(err) {
|
||||
return pendingUsers, err
|
||||
}
|
||||
for _, record := range records {
|
||||
u := models.ReturnUser{}
|
||||
err = json.Unmarshal([]byte(record), &u)
|
||||
if err == nil {
|
||||
pendingUsers = append(pendingUsers, u)
|
||||
}
|
||||
}
|
||||
return pendingUsers, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user