github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/imageserver/rpcd/chownDirectory.go (about)

     1  package rpcd
     2  
     3  import (
     4  	"errors"
     5  	"os/user"
     6  
     7  	"github.com/Cloud-Foundations/Dominator/lib/srpc"
     8  	"github.com/Cloud-Foundations/Dominator/proto/imageserver"
     9  )
    10  
    11  func (t *srpcType) ChownDirectory(conn *srpc.Conn,
    12  	request imageserver.ChangeOwnerRequest,
    13  	reply *imageserver.ChangeOwnerResponse) error {
    14  	username := conn.Username()
    15  	if username == "" {
    16  		return errors.New("no username: unauthenticated connection")
    17  	}
    18  	if request.OwnerGroup != "" {
    19  		if _, err := user.LookupGroup(request.OwnerGroup); err != nil {
    20  			return err
    21  		}
    22  	}
    23  	t.logger.Printf("ChownDirectory(%s) to: \"%s\" by %s\n",
    24  		request.DirectoryName, request.OwnerGroup, username)
    25  	return t.imageDataBase.ChownDirectory(request.DirectoryName,
    26  		request.OwnerGroup, conn.GetAuthInformation())
    27  }