more UI and change default local user permissions
This commit is contained in:
48
app.go
48
app.go
@@ -744,6 +744,52 @@ func (a *App) collectCIFSMountConfig(defaults CIFSMountConfig) (CIFSMountConfig,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func defaultCIFSMountConfig() CIFSMountConfig {
|
||||
uid, gid := defaultLocalMountOwnerGroup(os.Getenv, user.Current, user.Lookup, user.LookupGroupId)
|
||||
return CIFSMountConfig{
|
||||
UID: uid,
|
||||
GID: gid,
|
||||
}
|
||||
}
|
||||
|
||||
func defaultLocalMountOwnerGroup(
|
||||
getenv func(string) string,
|
||||
currentUser func() (*user.User, error),
|
||||
lookupUser func(string) (*user.User, error),
|
||||
lookupGroupID func(string) (*user.Group, error),
|
||||
) (uid string, gid string) {
|
||||
resolveGroup := func(groupID string) string {
|
||||
if strings.TrimSpace(groupID) == "" {
|
||||
return ""
|
||||
}
|
||||
group, err := lookupGroupID(groupID)
|
||||
if err != nil {
|
||||
return strings.TrimSpace(groupID)
|
||||
}
|
||||
return strings.TrimSpace(group.Name)
|
||||
}
|
||||
|
||||
if sudoUser := strings.TrimSpace(getenv("SUDO_USER")); sudoUser != "" {
|
||||
uid = sudoUser
|
||||
if sudoGID := strings.TrimSpace(getenv("SUDO_GID")); sudoGID != "" {
|
||||
return uid, resolveGroup(sudoGID)
|
||||
}
|
||||
if u, err := lookupUser(sudoUser); err == nil {
|
||||
return uid, resolveGroup(u.Gid)
|
||||
}
|
||||
return uid, ""
|
||||
}
|
||||
|
||||
u, err := currentUser()
|
||||
if err != nil {
|
||||
return "", ""
|
||||
}
|
||||
|
||||
uid = strings.TrimSpace(u.Username)
|
||||
gid = resolveGroup(u.Gid)
|
||||
return uid, gid
|
||||
}
|
||||
|
||||
func (a *App) ensureMountPoint(path string) error {
|
||||
info, err := os.Stat(path)
|
||||
if err == nil {
|
||||
@@ -1545,7 +1591,7 @@ func (a *App) addClientMount() error {
|
||||
return err
|
||||
}
|
||||
|
||||
cfg, err := a.collectCIFSMountConfig(CIFSMountConfig{})
|
||||
cfg, err := a.collectCIFSMountConfig(defaultCIFSMountConfig())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user