From 187d6dc500784760654b740a278fef59072ca5a8 Mon Sep 17 00:00:00 2001 From: Jeff Halter <868228+jhalter@users.noreply.github.com> Date: Sun, 26 Jun 2022 15:40:18 -0700 Subject: Refactor user access bitmap handling --- hotline/access.go | 13 +- hotline/access_test.go | 39 +++++ hotline/account.go | 10 +- hotline/client_conn.go | 4 +- hotline/server.go | 10 +- hotline/transaction_handlers.go | 112 +++++++------- hotline/transaction_handlers_test.go | 282 +++++++++++++++-------------------- 7 files changed, 225 insertions(+), 245 deletions(-) create mode 100644 hotline/access_test.go diff --git a/hotline/access.go b/hotline/access.go index ae72780..83a4e16 100644 --- a/hotline/access.go +++ b/hotline/access.go @@ -1,10 +1,5 @@ package hotline -import ( - "encoding/binary" - "math/big" -) - const ( accessDeleteFile = 0 // File System Maintenance: Can Delete Files accessUploadFile = 1 // File System Maintenance: Can Upload Files @@ -52,10 +47,6 @@ func (bits *accessBitmap) Set(i int) { bits[i/8] |= 1 << uint(7-i%8) } -// authorize checks if 64 bit access slice contain has accessBit set -// TODO: refactor to use accessBitmap type -func authorize(access *[]byte, accessBit int) bool { - bits := big.NewInt(int64(binary.BigEndian.Uint64(*access))) - - return bits.Bit(63-accessBit) == 1 +func (bits *accessBitmap) IsSet(i int) bool { + return bits[i/8]&(1<