summaryrefslogtreecommitdiff
path: root/src/parabola_hackers/nslcd_backend/hackers.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/parabola_hackers/nslcd_backend/hackers.go')
-rw-r--r--src/parabola_hackers/nslcd_backend/hackers.go30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/parabola_hackers/nslcd_backend/hackers.go b/src/parabola_hackers/nslcd_backend/hackers.go
index 66312c6..50d392b 100644
--- a/src/parabola_hackers/nslcd_backend/hackers.go
+++ b/src/parabola_hackers/nslcd_backend/hackers.go
@@ -19,18 +19,13 @@
package hackers_nslcd_backend
import (
- "lukeshu.com/git/go/libnslcd.git/proto"
"lukeshu.com/git/go/libnslcd.git/proto/server"
"lukeshu.com/git/go/libnslcd.git/systemd"
"lukeshu.com/git/go/libsystemd.git/sd_daemon/logger"
+ "parabola_hackers"
"sync"
)
-type user struct {
- passwd nslcd_proto.Passwd
- groups []string
-}
-
type config struct {
Pam_password_prohibit_message string
}
@@ -40,10 +35,9 @@ type Hackers struct {
lock sync.RWMutex
CfgFilename string
- YamlCat string
cfg config
- users map[int32]user
+ users map[int32]parabola_hackers.User
groups map[string]map[string]bool
}
@@ -52,7 +46,6 @@ var _ nslcd_server.Backend = &Hackers{}
func (o *Hackers) Init() error {
logger.Debug("hackers.git: CfgFilename = %v", o.CfgFilename)
- logger.Debug("hackers.git: YamlCat = %v", o.YamlCat)
err := o.Reload()
if err != nil {
logger.Err("hackers.git: Could not initialize: %v", err)
@@ -66,7 +59,7 @@ func (o *Hackers) Close() {
o.lock.Lock()
defer o.lock.Unlock()
- o.users = make(map[int32]user, 0)
+ o.users = make(map[int32]parabola_hackers.User, 0)
o.groups = make(map[string]map[string]bool)
}
@@ -83,15 +76,22 @@ func (o *Hackers) Reload() error {
logger.Info("hackers.git: pam_password_prohibit_message: %#v", o.cfg.Pam_password_prohibit_message)
logger.Debug("hackers.git: Parsing user data")
- o.users, err = parse_users(o.YamlCat)
+ o.users, err = parabola_hackers.LoadAllUsers()
if err != nil {
return err
}
o.groups = make(map[string]map[string]bool)
- for _, user := range o.users {
- for _, groupname := range user.groups {
- o.add_user_to_group(user.passwd.Name, groupname)
+ for uid, user := range o.users {
+ user.Passwd.GID = usersGid
+ var _err error
+ user.Passwd.PwHash, _err = parabola_hackers.LoadUserPassword(user.Passwd.HomeDir + "/.password")
+ if _err != nil {
+ logger.Debug("hackers.git: Ignoring password: %v", _err)
+ }
+ o.users[uid] = user
+ for _, groupname := range user.Groups {
+ o.add_user_to_group(user.Passwd.Name, groupname)
}
}
return nil
@@ -99,7 +99,7 @@ func (o *Hackers) Reload() error {
func (o *Hackers) name2uid(name string) int32 {
for uid, data := range o.users {
- if data.passwd.Name == name {
+ if data.Passwd.Name == name {
return uid
}
}