From a0241c250de01f32eacba2afee3f7d5cea30b8e5 Mon Sep 17 00:00:00 2001 From: Jeff Halter <868228+jhalter@users.noreply.github.com> Date: Sun, 30 Jan 2022 20:59:47 -0800 Subject: Initial permission handling refactor --- hotline/transaction_handlers.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'hotline/transaction_handlers.go') diff --git a/hotline/transaction_handlers.go b/hotline/transaction_handlers.go index ea6d087..ea46499 100644 --- a/hotline/transaction_handlers.go +++ b/hotline/transaction_handlers.go @@ -273,7 +273,7 @@ var TransactionHandlers = map[uint16]TransactionType{ Handler: HandleSetUser, }, tranUploadFile: { - Access: accessUploadFile, + Access: accessAlwaysAllow, DenyMsg: "You are not allowed to upload files.", Name: "tranUploadFile", Handler: HandleUploadFile, @@ -1323,21 +1323,25 @@ func HandleUploadFolder(cc *ClientConn, t *Transaction) (res []Transaction, err } func HandleUploadFile(cc *ClientConn, t *Transaction) (res []Transaction, err error) { + // TODO: add permission handing for upload folders and drop boxes + if !authorize(cc.Account.Access, accessUploadFile) { + res = append(res, cc.NewErrReply(t, "You are not allowed to upload files.")) + return res, err + } + fileName := t.GetField(fieldFileName).Data filePath := t.GetField(fieldFilePath).Data transactionRef := cc.Server.NewTransactionRef() data := binary.BigEndian.Uint32(transactionRef) - fileTransfer := &FileTransfer{ + cc.Server.FileTransfers[data] = &FileTransfer{ FileName: fileName, FilePath: filePath, ReferenceNumber: transactionRef, Type: FileUpload, } - cc.Server.FileTransfers[data] = fileTransfer - res = append(res, cc.NewReply(t, NewField(fieldRefNum, transactionRef))) return res, err } -- cgit