Skip to content

Instantly share code, notes, and snippets.

@kreas
Created May 31, 2018 02:44
Show Gist options
  • Save kreas/62468af5ec0ac49e2c150fd4422726f2 to your computer and use it in GitHub Desktop.
Save kreas/62468af5ec0ac49e2c150fd4422726f2 to your computer and use it in GitHub Desktop.
Byte roles
package main
import (
"fmt"
)
const (
isAdmin = 1 << iota
isPMAdmin
canCreatePM
canReadPM
canUpdatePM
isWorkOrderAdmin
canCreateWorkOrder
canReadWorkOrder
canUpdateWorkOrder
isAssetAdmin
canCreateAsset
canReadAsset
canUpdateAsset
)
const (
fgAdmin = isAdmin
administrator = isPMAdmin | isWorkOrderAdmin | isAssetAdmin
manager = canCreatePM | canCreateWorkOrder | canCreateAsset
)
func main() {
fmt.Printf("%v\n", isAdmin)
fmt.Printf("%v", administrator & isPMAdmin == isPMAdmin)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment