summaryrefslogtreecommitdiff
path: root/go/parabola_hackers/nslcd_backend/hackers.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2017-02-03 01:27:51 -0500
committerLuke Shumaker <lukeshu@sbcglobal.net>2017-02-03 01:27:51 -0500
commit026a77f92fd89f009eefee19a43c15d416f54cf7 (patch)
tree31363cfeb002ea8bb0872f3d2243796439ca189c /go/parabola_hackers/nslcd_backend/hackers.go
parent026a02b995bb0ae456c66c98f14ea0b2b761a1ea (diff)
Rename the Go packages to have a bit more taste.
Diffstat (limited to 'go/parabola_hackers/nslcd_backend/hackers.go')
-rw-r--r--go/parabola_hackers/nslcd_backend/hackers.go123
1 files changed, 0 insertions, 123 deletions
diff --git a/go/parabola_hackers/nslcd_backend/hackers.go b/go/parabola_hackers/nslcd_backend/hackers.go
deleted file mode 100644
index 9cff815..0000000
--- a/go/parabola_hackers/nslcd_backend/hackers.go
+++ /dev/null
@@ -1,123 +0,0 @@
-// Copyright 2015-2016 Luke Shumaker <lukeshu@sbcglobal.net>.
-//
-// This is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License as
-// published by the Free Software Foundation; either version 2 of
-// the License, or (at your option) any later version.
-//
-// This software is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public
-// License along with this manual; if not, see
-// <http://www.gnu.org/licenses/>.
-
-// Package hackers_nslcd_backend is an nslcd_server Backend that
-// speaks to hackers.git.
-package hackers_nslcd_backend
-
-import (
- "fmt"
- "parabola_hackers"
- "sync"
-
- "git.lukeshu.com/go/libnslcd/nslcd_server"
- "git.lukeshu.com/go/libnslcd/nslcd_systemd"
- "git.lukeshu.com/go/libsystemd/sd_daemon"
-)
-
-type config struct {
- Pam_password_prohibit_message string
-}
-
-type Hackers struct {
- nslcd_server.NilBackend
- lock sync.RWMutex
-
- CfgFilename string
-
- cfg config
- users map[int32]parabola_hackers.User
- groups map[string]map[string]bool
-}
-
-var _ nslcd_systemd.Backend = &Hackers{}
-var _ nslcd_server.Backend = &Hackers{}
-
-func (o *Hackers) Init() error {
- sd_daemon.Log.Debug(fmt.Sprintf("hackers.git: CfgFilename = %v", o.CfgFilename))
- err := o.Reload()
- if err != nil {
- sd_daemon.Log.Err(fmt.Sprintf("hackers.git: Could not initialize: %v", err))
- return err
- }
- return nil
-}
-
-func (o *Hackers) Close() {
- sd_daemon.Log.Info("hackers.git: Closing session")
- o.lock.Lock()
- defer o.lock.Unlock()
-
- o.users = make(map[int32]parabola_hackers.User, 0)
- o.groups = make(map[string]map[string]bool)
-}
-
-func (o *Hackers) Reload() error {
- sd_daemon.Log.Info("hackers.git: Loading session")
- o.lock.Lock()
- defer o.lock.Unlock()
-
- var err error
- o.cfg, err = parse_config(o.CfgFilename)
- if err != nil {
- return err
- }
- sd_daemon.Log.Info(fmt.Sprintf("hackers.git: pam_password_prohibit_message: %#v", o.cfg.Pam_password_prohibit_message))
-
- sd_daemon.Log.Debug("hackers.git: Parsing user data")
- o.users, err = parabola_hackers.LoadAllUsers()
- if err != nil {
- return err
- }
-
- passwords, err := parabola_hackers.LoadAllPasswords()
- if err != nil {
- return err
- }
-
- o.groups = make(map[string]map[string]bool)
- for uid, user := range o.users {
- user.Passwd.GID = usersGid
- hash, hasHash := passwords[user.Passwd.Name]
- if !hasHash {
- hash = "!"
- }
- user.Passwd.PwHash = hash
- o.users[uid] = user
- for _, groupname := range user.Groups {
- o.add_user_to_group(user.Passwd.Name, groupname)
- }
- }
- return nil
-}
-
-func (o *Hackers) name2uid(name string) int32 {
- for uid, data := range o.users {
- if data.Passwd.Name == name {
- return uid
- }
- }
- return -1
-}
-
-func (o *Hackers) add_user_to_group(username string, groupname string) {
- group, found := o.groups[groupname]
- if !found {
- group = make(map[string]bool)
- o.groups[groupname] = group
- }
- group[username] = true
-}