yt-gen-app/lib/templ/tmpl/backend/middleware/in-role.tmpl

63 lines
1.0 KiB
Cheetah

package middleware
import (
"{{ .Name }}/db"
"{{ .Name }}/db/model"
uuid "github.com/satori/go.uuid"
)
func InRole(idUser uuid.UUID, roleName string) bool {
var err error
tx := db.BeginTransation()
defer func() {
db.EndTransaction(tx, err)
}()
var userRoles []model.UserRole
if res := tx.Joins("Role").Find(&userRoles, "id_user = ?", idUser); res.RowsAffected == 0 {
return false
}
if len(userRoles) > 0 {
for _, item := range userRoles {
if item.Role.Name == roleName {
return true
}
}
}
return false
}
func InsRole(idUser uuid.UUID, roleNames []string) bool {
if len(roleNames) == 0{
return true
}
var err error
tx := db.BeginTransation()
defer func() {
db.EndTransaction(tx, err)
}()
var userRoles []model.UserRole
if res := tx.Joins("Role").Find(&userRoles, "id_user = ?", idUser); res.RowsAffected == 0 {
return false
}
if len(userRoles) > 0 {
for _, item := range userRoles {
for _,item2:=range roleNames{
if item.Role.Name == item2 {
return true
}
}
}
}
return false
}