Files
user-manager-api/app/operations.go

127 lines
3.1 KiB
Go

package app
import (
common "user-manager-api/app/common"
)
func NewPool(backends *Backends, poolname string) (int, error) {
// only pve backend handles pools
return backends.pve.NewPool(poolname)
}
func DelPool(backends *Backends, poolname string) (int, error) {
// only pve backend handles pools
return backends.pve.DelPool(poolname)
}
func NewGroup(backends *Backends, groupname common.Groupname) (int, error) {
handler := Config.Realms[groupname.Realm].Handler
switch handler {
case "pve":
return backends.pve.NewGroup(groupname)
case "ldap":
code, err := backends.ldap.NewGroup(groupname)
if err != nil {
return code, err
}
//pve sync
return backends.pve.SyncRealms()
}
return 200, nil
}
func DelGroup(backends *Backends, groupname common.Groupname) (int, error) {
handler := Config.Realms[groupname.Realm].Handler
switch handler {
case "pve":
return backends.pve.DelGroup(groupname)
case "ldap":
code, err := backends.ldap.DelGroup(groupname)
if err != nil {
return code, err
}
//pve sync
return backends.pve.SyncRealms()
}
return 200, nil
}
func AddGroupToPool(backends *Backends, groupname common.Groupname, poolname string) (int, error) {
// only pve backend handles pool-group membership
return backends.pve.AddGroupToPool(groupname, poolname)
}
func DelGroupFromPool(backends *Backends, groupname common.Groupname, poolname string) (int, error) {
// only pve backend handles pool-group membership
return backends.pve.DelGroupFromPool(groupname, poolname)
}
func NewUser(backends *Backends, username common.Username, user common.User) (int, error) {
handler := Config.Realms[username.Realm].Handler
switch handler {
case "pve":
return backends.pve.NewUser(username, user)
case "ldap":
code, err := backends.ldap.NewUser(username, user)
if err != nil {
return code, err
}
//pve sync
return backends.pve.SyncRealms()
}
return 200, nil
}
func DelUser(backends *Backends, username common.Username) (int, error) {
handler := Config.Realms[username.Realm].Handler
switch handler {
case "pve":
return backends.pve.DelUser(username)
case "ldap":
code, err := backends.ldap.DelUser(username)
if err != nil {
return code, err
}
//pve sync
return backends.pve.SyncRealms()
}
return 200, nil
}
func AddUserToGroup(backends *Backends, username common.Username, groupname common.Groupname) (int, error) {
handler := Config.Realms[username.Realm].Handler
switch handler {
case "pve":
return backends.pve.AddUserToGroup(username, groupname)
case "ldap":
code, err := backends.ldap.AddUserToGroup(username, groupname)
if err != nil {
return code, err
}
//pve sync
return backends.pve.SyncRealms()
}
return 200, nil
}
func DelUserFromGroup(backends *Backends, username common.Username, groupname common.Groupname) (int, error) {
handler := Config.Realms[username.Realm].Handler
switch handler {
case "pve":
return backends.pve.DelUserFromGroup(username, groupname)
case "ldap":
code, err := backends.ldap.DelUserFromGroup(username, groupname)
if err != nil {
return code, err
}
//pve sync
return backends.pve.SyncRealms()
}
return 200, nil
}