server/core/perm.go
Nick Craig-Wood c28a288338
Some checks failed
continuous-integration/drone/push Build is failing
Factor into server and driver directories (#120)
Factor into core and driver directories

The change factors the pure server implementation into the "core"
directory and factors the file driver into "driver/file" and the minio
driver into "driver/minio".

This means that users of this library can import goftp.io/server/core
without having to import the file and minio drivers which may not be
needed.

This also adds a compatibility layer which exports all the types,
functions and variables that were exported at the top level.

This means this change should be 100% backwards compatible.

Fixes #116

Co-authored-by: Nick Craig-Wood <nick@craig-wood.com>
Reviewed-on: #120
2020-07-07 16:02:27 +00:00

62 lines
1.4 KiB
Go

// Copyright 2018 The goftp Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package core
import "os"
// Perm represents a perm interface
type Perm interface {
GetOwner(string) (string, error)
GetGroup(string) (string, error)
GetMode(string) (os.FileMode, error)
ChOwner(string, string) error
ChGroup(string, string) error
ChMode(string, os.FileMode) error
}
// SimplePerm implements Perm interface that all files are owned by special owner and group
type SimplePerm struct {
owner, group string
}
// NewSimplePerm creates a SimplePerm
func NewSimplePerm(owner, group string) *SimplePerm {
return &SimplePerm{
owner: owner,
group: group,
}
}
// GetOwner returns the file's owner
func (s *SimplePerm) GetOwner(string) (string, error) {
return s.owner, nil
}
// GetGroup returns the group of the file
func (s *SimplePerm) GetGroup(string) (string, error) {
return s.group, nil
}
// GetMode returns the file's mode
func (s *SimplePerm) GetMode(string) (os.FileMode, error) {
return os.ModePerm, nil
}
// ChOwner changed the file's owner
func (s *SimplePerm) ChOwner(string, string) error {
return nil
}
// ChGroup changed the file's group
func (s *SimplePerm) ChGroup(string, string) error {
return nil
}
// ChMode changed the file's mode
func (s *SimplePerm) ChMode(string, os.FileMode) error {
return nil
}