-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinterface.go
30 lines (26 loc) · 1.13 KB
/
interface.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package sshkeymanager
import (
"github.com/rs-pro/sshkeymanager/authorized_keys"
"github.com/rs-pro/sshkeymanager/group"
"github.com/rs-pro/sshkeymanager/passwd"
)
type ClientInterface interface {
GetGroups() ([]group.Group, error)
ClearGroupCache() error
FindGroup(group group.Group) (*group.Group, error)
AddGroup(group group.Group) (*group.Group, error)
DeleteGroup(group group.Group) (*group.Group, error)
GetUsers() ([]passwd.User, error)
ClearUserCache() error
GetUserByUid(uid string) (*passwd.User, error)
GetUserByName(name string) (*passwd.User, error)
FindUser(user passwd.User) (*passwd.User, error)
CreateHome(u passwd.User) (*passwd.User, error)
AddUser(user passwd.User, createHome bool) (*passwd.User, error)
DeleteUser(user passwd.User, removeHome bool) (*passwd.User, error)
GetKeys(user passwd.User) ([]authorized_keys.SSHKey, error)
FindKey(user passwd.User, key authorized_keys.SSHKey) (*authorized_keys.SSHKey, error)
DeleteKey(user passwd.User, key authorized_keys.SSHKey) error
AddKey(user passwd.User, key authorized_keys.SSHKey) error
WriteKeys(user passwd.User, keys []authorized_keys.SSHKey) error
}