mirror of
https://github.com/kataras/iris.git
synced 2025-01-23 18:51:03 +01:00
34 lines
481 B
Go
34 lines
481 B
Go
//go:build go1.18
|
|
|
|
package main
|
|
|
|
type AccessRole uint16
|
|
|
|
func (r AccessRole) Is(v AccessRole) bool {
|
|
return r&v != 0
|
|
}
|
|
|
|
func (r AccessRole) Allow(v AccessRole) bool {
|
|
return r&v >= v
|
|
}
|
|
|
|
const (
|
|
InvalidAccessRole AccessRole = 1 << iota
|
|
Read
|
|
Write
|
|
Delete
|
|
|
|
Owner = Read | Write | Delete
|
|
Member = Read | Write
|
|
)
|
|
|
|
type User struct {
|
|
ID string `json:"id"`
|
|
Email string `json:"email"`
|
|
Role AccessRole `json:"role"`
|
|
}
|
|
|
|
func (u User) GetID() string {
|
|
return u.ID
|
|
}
|