mirror of
https://github.com/cuigh/swirl
synced 2024-12-29 07:12:11 +00:00
71 lines
1.4 KiB
Go
71 lines
1.4 KiB
Go
package biz
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/cuigh/auxo/net/web"
|
|
"github.com/cuigh/swirl/dao"
|
|
"github.com/cuigh/swirl/misc"
|
|
"github.com/cuigh/swirl/model"
|
|
)
|
|
|
|
// Role return a role biz instance.
|
|
var Role = &roleBiz{}
|
|
|
|
type roleBiz struct {
|
|
}
|
|
|
|
func (b *roleBiz) List() (roles []*model.Role, err error) {
|
|
do(func(d dao.Interface) {
|
|
roles, err = d.RoleList()
|
|
})
|
|
return
|
|
}
|
|
|
|
func (b *roleBiz) Create(role *model.Role, user web.User) (err error) {
|
|
do(func(d dao.Interface) {
|
|
role.ID = misc.NewID()
|
|
role.CreatedAt = time.Now()
|
|
role.UpdatedAt = role.CreatedAt
|
|
err = d.RoleCreate(role)
|
|
if err == nil {
|
|
Event.CreateRole(model.EventActionCreate, role.ID, role.Name, user)
|
|
}
|
|
})
|
|
return
|
|
}
|
|
|
|
func (b *roleBiz) Delete(id string, user web.User) (err error) {
|
|
do(func(d dao.Interface) {
|
|
var role *model.Role
|
|
role, err = d.RoleGet(id)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
err = d.RoleDelete(id)
|
|
if err == nil {
|
|
Event.CreateRole(model.EventActionDelete, id, role.Name, user)
|
|
}
|
|
})
|
|
return
|
|
}
|
|
|
|
func (b *roleBiz) Get(id string) (role *model.Role, err error) {
|
|
do(func(d dao.Interface) {
|
|
role, err = d.RoleGet(id)
|
|
})
|
|
return
|
|
}
|
|
|
|
func (b *roleBiz) Update(role *model.Role, user web.User) (err error) {
|
|
do(func(d dao.Interface) {
|
|
role.UpdatedAt = time.Now()
|
|
err = d.RoleUpdate(role)
|
|
if err == nil {
|
|
Event.CreateRole(model.EventActionUpdate, role.ID, role.Name, user)
|
|
}
|
|
})
|
|
return
|
|
}
|