package permissions type Permission int const ( // ThaiPermission Permission = 1 << iota // MalayPermission // AusPermission // Alpha3Permission // NOTE: Add more permission here Viewer = 1 << 4 Editor = Viewer << 3 // SuperAdmin have max uint // SuperAdmin = ThaiPermission | MalayPermission | AusPermission | Alpha3Permission | (Editor | Viewer) ) func (userPermissions Permission) IsHavePermission(requiredPermissions Permission) bool { return (userPermissions & requiredPermissions) == requiredPermissions }