Add permission control for service resource

This commit is contained in:
cuigh
2017-11-24 13:03:51 +08:00
parent 8ce6adf478
commit 1f652bb6f3
23 changed files with 577 additions and 96 deletions

View File

@@ -65,6 +65,7 @@ type Session struct {
type AuthUser struct {
user *User
roles []*Role
perms map[string]struct{}
}
@@ -74,6 +75,7 @@ func NewAuthUser(user *User, roles []*Role) *AuthUser {
}
u := &AuthUser{
user: user,
roles: roles,
perms: make(map[string]struct{}),
}
for _, role := range roles {
@@ -100,6 +102,15 @@ func (u *AuthUser) Admin() bool {
return u.user.Admin
}
func (u *AuthUser) IsInRole(roleID string) bool {
for _, role := range u.roles {
if role.ID == roleID {
return true
}
}
return false
}
func (u *AuthUser) IsAllowed(perm string) bool {
if u.user.Admin {
return true