summaryrefslogtreecommitdiff
path: root/internal/user/server
diff options
context:
space:
mode:
Diffstat (limited to 'internal/user/server')
-rw-r--r--internal/user/server/user.go17
1 files changed, 13 insertions, 4 deletions
diff --git a/internal/user/server/user.go b/internal/user/server/user.go
index d391672..332ea96 100644
--- a/internal/user/server/user.go
+++ b/internal/user/server/user.go
@@ -24,11 +24,20 @@ type User struct {
permissions []string
}
+// PermissionLookup resolves permissions for a given SSH user.
+type PermissionLookup func(string) ([]string, error)
+
// New returns a new user.
-func New(name, remoteAddress string) (*User, error) {
- permissions, err := config.ServerUserPermissions(name)
- if err != nil {
- return nil, err
+func New(name, remoteAddress string, permissionLookup PermissionLookup) (*User, error) {
+ var (
+ permissions []string
+ err error
+ )
+ if permissionLookup != nil {
+ permissions, err = permissionLookup(name)
+ if err != nil {
+ return nil, err
+ }
}
return &User{
Name: name,