2023-12-06 20:21:25 +07:00
|
|
|
package permissions
|
|
|
|
|
|
|
|
|
|
type Permission int
|
|
|
|
|
|
|
|
|
|
const (
|
2024-03-18 14:11:24 +07:00
|
|
|
// ThaiPermission Permission = 1 << iota
|
|
|
|
|
// MalayPermission
|
|
|
|
|
// AusPermission
|
|
|
|
|
// Alpha3Permission
|
2023-12-06 20:21:25 +07:00
|
|
|
// NOTE: Add more permission here
|
2023-12-18 08:49:23 +07:00
|
|
|
Viewer = 1 << 4
|
|
|
|
|
Editor = Viewer << 3
|
2023-12-08 14:58:35 +07:00
|
|
|
// SuperAdmin have max uint
|
2024-03-18 14:11:24 +07:00
|
|
|
// SuperAdmin = ThaiPermission | MalayPermission | AusPermission | Alpha3Permission | (Editor | Viewer)
|
2023-12-06 20:21:25 +07:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func (userPermissions Permission) IsHavePermission(requiredPermissions Permission) bool {
|
|
|
|
|
return (userPermissions & requiredPermissions) == requiredPermissions
|
|
|
|
|
}
|