summaryrefslogtreecommitdiff
path: root/src/parabola_hackers/nslcd_backend/db_group.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2016-06-17 20:09:33 -0400
committerLuke Shumaker <lukeshu@sbcglobal.net>2016-06-17 20:09:33 -0400
commit4d12729aa4026229e4e118b924cc3b1c75ca214b (patch)
treeabd9a69ec11504844148b1017f9e9601ef7e90b8 /src/parabola_hackers/nslcd_backend/db_group.go
parent4f175a22cf726bfa09652d8d9ca6374785561348 (diff)
write setuid, move things around
Diffstat (limited to 'src/parabola_hackers/nslcd_backend/db_group.go')
-rw-r--r--src/parabola_hackers/nslcd_backend/db_group.go141
1 files changed, 0 insertions, 141 deletions
diff --git a/src/parabola_hackers/nslcd_backend/db_group.go b/src/parabola_hackers/nslcd_backend/db_group.go
deleted file mode 100644
index 18e54b1..0000000
--- a/src/parabola_hackers/nslcd_backend/db_group.go
+++ /dev/null
@@ -1,141 +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
-
-import (
- "parabola_hackers"
- s "syscall"
-
- p "lukeshu.com/git/go/libnslcd.git/proto"
-)
-
-func (o *Hackers) groupByName(name string, users bool) p.Group {
- members_set, found := o.groups[name]
- if !found {
- return p.Group{ID: -1}
- }
- gid := name2gid(name)
- if gid < 0 {
- return p.Group{ID: -1}
- }
- var members_list []string
- if users {
- members_list = parabola_hackers.Set2list(members_set)
- } else {
- members_list = make([]string, 0)
- }
- return p.Group{
- Name: name,
- PwHash: "x",
- ID: gid,
- Members: members_list,
- }
-}
-
-func (o *Hackers) groupByGid(gid int32, users bool) p.Group {
- name, found := gid2name(gid)
- if !found {
- return p.Group{ID: -1}
- }
- members_set, found := o.groups[name]
- if !found {
- return p.Group{ID: -1}
- }
- var members_list []string
- if users {
- members_list = parabola_hackers.Set2list(members_set)
- } else {
- members_list = make([]string, 0)
- }
- return p.Group{
- Name: name,
- PwHash: "x",
- ID: gid,
- Members: members_list,
- }
-}
-
-func (o *Hackers) Group_ByName(cred s.Ucred, req p.Request_Group_ByName) <-chan p.Group {
- o.lock.RLock()
- ret := make(chan p.Group)
- go func() {
- defer o.lock.RUnlock()
- defer close(ret)
-
- group := o.groupByName(req.Name, true)
- if group.ID < 0 {
- return
- }
- ret <- group
- }()
- return ret
-}
-
-func (o *Hackers) Group_ByGid(cred s.Ucred, req p.Request_Group_ByGid) <-chan p.Group {
- o.lock.RLock()
- ret := make(chan p.Group)
- go func() {
- defer o.lock.RUnlock()
- defer close(ret)
-
- group := o.groupByGid(req.Gid, true)
- if group.ID < 0 {
- return
- }
- ret <- group
- }()
- return ret
-}
-
-// note that the BYMEMBER call returns an empty members list
-func (o *Hackers) Group_ByMember(cred s.Ucred, req p.Request_Group_ByMember) <-chan p.Group {
- o.lock.RLock()
- ret := make(chan p.Group)
- go func() {
- defer o.lock.RUnlock()
- defer close(ret)
-
- uid := o.name2uid(req.Member)
- if uid < 0 {
- return
- }
- for _, name := range o.users[uid].Groups {
- group := o.groupByName(name, false)
- if group.ID >= 0 {
- ret <- group
- }
- }
- }()
- return ret
-}
-
-func (o *Hackers) Group_All(cred s.Ucred, req p.Request_Group_All) <-chan p.Group {
- o.lock.RLock()
- ret := make(chan p.Group)
- go func() {
- defer o.lock.RUnlock()
- defer close(ret)
-
- for name, _ := range o.groups {
- group := o.groupByName(name, true)
- if group.ID >= 0 {
- ret <- group
- }
- }
- }()
- return ret
-}