)
const (
- accessAlwaysAllow = -1 // Some transactions are always allowed
-
// File System Maintenance
accessDeleteFile = 0
accessUploadFile = 1
accessOpenUser = 16
accessModifyUser = 17
// accessChangeOwnPass = 18 // Documented but unused?
- accessSendPrivMsg = 19 // This doesn't do what it seems like it should do. TODO: Investigate
+ // accessSendPrivMsg = 19 // This doesn't do what it seems like it should do. TODO: Investigate
accessNewsReadArt = 20
accessNewsPostArt = 21
accessDisconUser = 22 // Toggles red user name in user list
accessBroadcast = 32
accessNewsDeleteArt = 33
accessNewsCreateCat = 34
- accessNewsDeleteCat = 35
- accessNewsCreateFldr = 36
- accessNewsDeleteFldr = 37
+ // accessNewsDeleteCat = 35
+ accessNewsCreateFldr = 36
+ // accessNewsDeleteFldr = 37
)
+type accessBitmap [8]byte
+
+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 {
- if accessBit == accessAlwaysAllow {
- return true
- }
- accessBitmap := big.NewInt(int64(binary.BigEndian.Uint64(*access)))
+ bits := big.NewInt(int64(binary.BigEndian.Uint64(*access)))
- return accessBitmap.Bit(63-accessBit) == 1
+ return bits.Bit(63-accessBit) == 1
}