+ fi, err := cc.Server.FS.Stat(fullFilePath)
+ if err != nil {
+ return res, err
+ }
+
+ hlFile, err := newFileWrapper(cc.Server.FS, fullFilePath, 0)
+ if err != nil {
+ return res, err
+ }
+ if t.GetField(fieldFileComment).Data != nil {
+ switch mode := fi.Mode(); {
+ case mode.IsDir():
+ if !authorize(cc.Account.Access, accessSetFolderComment) {
+ res = append(res, cc.NewErrReply(t, "You are not allowed to set comments for folders."))
+ return res, err
+ }
+ case mode.IsRegular():
+ if !authorize(cc.Account.Access, accessSetFileComment) {
+ res = append(res, cc.NewErrReply(t, "You are not allowed to set comments for files."))
+ return res, err
+ }
+ }
+
+ if err := hlFile.ffo.FlatFileInformationFork.setComment(t.GetField(fieldFileComment).Data); err != nil {
+ return res, err
+ }
+ w, err := hlFile.infoForkWriter()
+ if err != nil {
+ return res, err
+ }
+ _, err = w.Write(hlFile.ffo.FlatFileInformationFork.MarshalBinary())
+ if err != nil {
+ return res, err
+ }
+ }
+