You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
auth2/roles.go

37 lines
968 B
Go

package auth2
const ROLE_SERVICE = "service"
const ROLE_SUPERADMIN = "superadmin"
const ROLE_ADMIN = "admin"
const ROLE_USER = "user"
const ROLE_ANONYMOUS = "anonymous"
var RolesAdmin = []string{ROLE_ADMIN, ROLE_SUPERADMIN}
var RolesUsersAndAdmin = []string{ROLE_USER, ROLE_ADMIN, ROLE_SUPERADMIN}
var RolesServiceAndUsersAndAdmin = []string{ROLE_SERVICE, ROLE_USER, ROLE_ADMIN, ROLE_SUPERADMIN}
var RolesServiceAndAdmin = []string{ROLE_SERVICE, ROLE_ADMIN, ROLE_SUPERADMIN}
var RolesServiceAndSuperadmin = []string{ROLE_SERVICE, ROLE_SUPERADMIN}
var RolesAllAndAnon = []string{ROLE_SERVICE, ROLE_SUPERADMIN, ROLE_ADMIN, ROLE_USER, ROLE_ANONYMOUS}
func HasRole(user *User, role string) bool {
for _, ur := range user.Roles {
if ur == role {
return true
}
}
return false
}
func IntersectsRoles(user *User, roles ...string) bool {
for _, ur := range user.Roles {
for _, mr := range roles {
if ur == mr {
return true
}
}
}
return false
}