563 lines
12 KiB
Go
563 lines
12 KiB
Go
package http
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"go-common/library/log"
|
|
bm "go-common/library/net/http/blademaster"
|
|
"go-common/library/net/http/blademaster/render"
|
|
|
|
"go-common/library/ecode"
|
|
)
|
|
|
|
// check username and dashboard sessionid
|
|
func checkCookie(c *bm.Context) (username, sid string, err error) {
|
|
var r = c.Request
|
|
var name *http.Cookie
|
|
if name, err = r.Cookie("username"); err == nil {
|
|
username = name.Value
|
|
}
|
|
var session *http.Cookie
|
|
if session, err = r.Cookie("_AJSESSIONID"); err == nil {
|
|
sid = session.Value
|
|
}
|
|
if username == "" || sid == "" {
|
|
err = ecode.Unauthorized
|
|
}
|
|
return
|
|
}
|
|
|
|
func getAuthorityUserPrivileges(c *bm.Context) {
|
|
username, _, err := checkCookie(c)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
log.Error("growup checkCookie error(%v)", err)
|
|
return
|
|
}
|
|
|
|
data, err := svr.GetAuthorityUserPrivileges(username)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
log.Error("growup svr.GetAuthorityUserPrivileges error(%v)", err)
|
|
return
|
|
}
|
|
c.JSON(data, nil)
|
|
}
|
|
|
|
func getAuthorityUserGroup(c *bm.Context) {
|
|
username, _, err := checkCookie(c)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
log.Error("growup checkCookie error(%v)", err)
|
|
return
|
|
}
|
|
data, err := svr.GetAuthorityUserGroup(username)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
log.Error("growup svr.GetAuthorityUserGroup error(%v)", err)
|
|
return
|
|
}
|
|
c.JSON(data, nil)
|
|
}
|
|
|
|
func listAuthorityUsers(c *bm.Context) {
|
|
v := new(struct {
|
|
Username string `form:"username"`
|
|
From int `form:"from" validate:"min=0" default:"0"`
|
|
Limit int `form:"limit" validate:"min=1" default:"20"`
|
|
Sort string `form:"sort"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
users, total, err := svr.ListAuthorityUsers(v.Username, v.From, v.Limit, v.Sort)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
log.Error("growup svr.ListAuthorityUsers error(%v)", err)
|
|
return
|
|
}
|
|
c.Render(http.StatusOK, render.MapJSON(map[string]interface{}{
|
|
"code": 0,
|
|
"message": "0",
|
|
"data": users,
|
|
"paging": map[string]int{
|
|
"page_size": v.Limit,
|
|
"total": total,
|
|
},
|
|
}))
|
|
}
|
|
|
|
func addAuthorityUser(c *bm.Context) {
|
|
v := new(struct {
|
|
Username string `form:"username"`
|
|
Nickname string `form:"nickname"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
err := svr.AddAuthorityUser(v.Username, v.Nickname)
|
|
if err != nil {
|
|
log.Error("growup svr.AddAuthorityUser error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func updateAuthorityUserInfo(c *bm.Context) {
|
|
v := new(struct {
|
|
ID int64 `form:"id"`
|
|
Nickname string `form:"nickname"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
err := svr.UpdateAuthorityUserInfo(v.ID, v.Nickname)
|
|
if err != nil {
|
|
log.Error("growup svr.UpdateAuthorityUserInfo error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func updateAuthorityUserAuth(c *bm.Context) {
|
|
v := new(struct {
|
|
ID int64 `form:"id"`
|
|
GroupID string `form:"group_id"`
|
|
RoleID string `form:"role_id"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
err := svr.UpdateAuthorityUserAuth(v.ID, v.GroupID, v.RoleID)
|
|
if err != nil {
|
|
log.Error("growup svr.UpdateAuthorityUserAuth error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func deleteAuthorityUser(c *bm.Context) {
|
|
v := new(struct {
|
|
ID int64 `form:"id"`
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
err := svr.DeleteAuthorityUser(v.ID)
|
|
if err != nil {
|
|
log.Error("growup svr.DeleteAuthorityUser error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func listAuthorityTaskGroups(c *bm.Context) {
|
|
v := new(struct {
|
|
From int `form:"from" validate:"min=0" default:"0"`
|
|
Limit int `form:"limit" validate:"min=1" default:"20"`
|
|
Sort string `form:"sort"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
groups, total, err := svr.ListAuthorityTaskGroups(v.From, v.Limit, v.Sort)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
log.Error("growup svr.ListAuthorityTaskGroups error(%v)", err)
|
|
return
|
|
}
|
|
c.Render(http.StatusOK, render.MapJSON(map[string]interface{}{
|
|
"code": 0,
|
|
"message": "0",
|
|
"data": groups,
|
|
"paging": map[string]int{
|
|
"page_size": v.Limit,
|
|
"total": total,
|
|
},
|
|
}))
|
|
}
|
|
|
|
func addAuthorityTaskGroup(c *bm.Context) {
|
|
v := new(struct {
|
|
Name string `form:"name"`
|
|
Desc string `form:"desc"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
err := svr.AddAuthorityTaskGroup(v.Name, v.Desc)
|
|
if err != nil {
|
|
log.Error("growup svr.AddAuthorityTaskGroup error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func addAuthorityTaskGroupUser(c *bm.Context) {
|
|
v := new(struct {
|
|
Username string `form:"username"`
|
|
GroupID string `form:"group_id"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
err := svr.AddAuthorityTaskGroupUser(v.Username, v.GroupID)
|
|
if err != nil {
|
|
log.Error("growup svr.AddAuthorityTaskGroupUser error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func updateAuthorityTaskGroupInfo(c *bm.Context) {
|
|
v := new(struct {
|
|
GroupID int64 `form:"group_id"`
|
|
Name string `form:"name"`
|
|
Desc string `form:"desc"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
err := svr.UpdateAuthorityTaskGroupInfo(v.GroupID, v.Name, v.Desc)
|
|
if err != nil {
|
|
log.Error("growup svr.UpdateAuthorityTaskGroupInfo error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func deleteAuthorityTaskGroup(c *bm.Context) {
|
|
v := new(struct {
|
|
GroupID int64 `form:"group_id"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
err := svr.DeleteAuthorityTaskGroup(v.GroupID)
|
|
if err != nil {
|
|
log.Error("growup svr.DeleteAuthorityTaskGroup error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func deleteAuthorityTaskGroupUser(c *bm.Context) {
|
|
v := new(struct {
|
|
ID int64 `form:"id"`
|
|
GroupID int64 `form:"group_id"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
err := svr.DeleteAuthorityTaskGroupUser(v.ID, v.GroupID)
|
|
if err != nil {
|
|
log.Error("growup svr.DeleteAuthorityTaskGroupUser error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func listAuthorityGroupPrivilege(c *bm.Context) {
|
|
v := new(struct {
|
|
GroupID int64 `form:"group_id"`
|
|
FatherID int64 `form:"father_id" validate:"required"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
data, err := svr.ListAuthorityGroupPrivilege(v.GroupID, v.FatherID)
|
|
if err != nil {
|
|
log.Error("growup svr.ListAuthorityGroupPrivilege error(%v)", err)
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
c.JSON(data, nil)
|
|
}
|
|
|
|
func updateAuthorityGroupPrivilege(c *bm.Context) {
|
|
v := new(struct {
|
|
Add string `form:"add"`
|
|
Minus string `form:"minus"`
|
|
GroupID int64 `form:"group_id"`
|
|
Type int `form:"type"` // 1 数据源
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
err := svr.UpdateAuthorityGroupPrivilege(v.GroupID, v.Add, v.Minus, v.Type)
|
|
if err != nil {
|
|
log.Error("growup svr.UpdateAuthorityGroupPrivilege error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func listAuthorityTaskRoles(c *bm.Context) {
|
|
username, _, err := checkCookie(c)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
log.Error("growup checkCookie error(%v)", err)
|
|
return
|
|
}
|
|
v := new(struct {
|
|
From int `form:"from" validate:"min=0" default:"0"`
|
|
Limit int `form:"limit" validate:"min=1" default:"20"`
|
|
Sort string `form:"sort"`
|
|
})
|
|
|
|
if err = c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
roles, total, err := svr.ListAuthorityTaskRoles(username, v.From, v.Limit, v.Sort)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
log.Error("growup svr.ListAuthorityTaskRoles error(%v)", err)
|
|
return
|
|
}
|
|
|
|
c.Render(http.StatusOK, render.MapJSON(map[string]interface{}{
|
|
"code": 0,
|
|
"message": "0",
|
|
"data": roles,
|
|
"paging": map[string]int{
|
|
"page_size": v.Limit,
|
|
"total": total,
|
|
},
|
|
}))
|
|
}
|
|
|
|
func addAuthorityTaskRole(c *bm.Context) {
|
|
v := new(struct {
|
|
GroupID int64 `form:"group_id" validate:"required"`
|
|
Name string `form:"name"`
|
|
Desc string `form:"desc"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
err := svr.AddAuthorityTaskRole(v.GroupID, v.Name, v.Desc)
|
|
if err != nil {
|
|
log.Error("growup svr.AddAuthorityTaskRole error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func addAuthorityTaskRoleUser(c *bm.Context) {
|
|
v := new(struct {
|
|
Username string `form:"username"`
|
|
RoleID string `form:"role_id"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
err := svr.AddAuthorityTaskRoleUser(v.Username, v.RoleID)
|
|
if err != nil {
|
|
log.Error("growup svr.AddAuthorityTaskRoleUser error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func updateAuthorityTaskRoleInfo(c *bm.Context) {
|
|
v := new(struct {
|
|
RoleID int64 `form:"role_id"`
|
|
Name string `form:"name"`
|
|
Desc string `form:"desc"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
err := svr.UpdateAuthorityTaskRoleInfo(v.RoleID, v.Name, v.Desc)
|
|
if err != nil {
|
|
log.Error("growup svr.UpdateAuthorityTaskRoleInfo error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func deleteAuthorityTaskRole(c *bm.Context) {
|
|
v := new(struct {
|
|
RoleID int64 `form:"role_id"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
err := svr.DeleteAuthorityTaskRole(v.RoleID)
|
|
if err != nil {
|
|
log.Error("growup svr.DeleteAuthorityTaskRole error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func deleteAuthorityTaskRoleUser(c *bm.Context) {
|
|
v := new(struct {
|
|
ID int64 `form:"id"`
|
|
RoleID int64 `form:"role_id"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
err := svr.DeleteAuthorityTaskRoleUser(v.ID, v.RoleID)
|
|
if err != nil {
|
|
log.Error("growup svr.DeleteAuthorityTaskRoleUser error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func listAuthorityRolePrivilege(c *bm.Context) {
|
|
v := new(struct {
|
|
GroupID int64 `form:"group_id"`
|
|
RoleID int64 `form:"role_id"`
|
|
FatherID int64 `form:"father_id" validate:"required"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
data, err := svr.ListAuthorityRolePrivilege(v.GroupID, v.RoleID, v.FatherID)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
log.Error("growup svr.ListAuthorityRolePrivilege error(%v)", err)
|
|
return
|
|
}
|
|
c.JSON(data, nil)
|
|
}
|
|
|
|
func updateAuthorityRolePrivilege(c *bm.Context) {
|
|
v := new(struct {
|
|
Add string `form:"add"`
|
|
Minus string `form:"minus"`
|
|
RoleID int64 `form:"role_id"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
err := svr.UpdateAuthorityRolePrivilege(v.RoleID, v.Add, v.Minus)
|
|
if err != nil {
|
|
log.Error("growup svr.UpdateAuthorityRolePrivilege error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func listAuthorityGroupAndRole(c *bm.Context) {
|
|
groups, roles, err := svr.ListGroupAndRole()
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
log.Error("growup svr.ListGroupAndRole error(%v)", err)
|
|
return
|
|
}
|
|
c.Render(http.StatusOK, render.MapJSON(map[string]interface{}{
|
|
"code": 0,
|
|
"message": "0",
|
|
"data": map[string]interface{}{
|
|
"groups": groups,
|
|
"roles": roles,
|
|
},
|
|
}))
|
|
}
|
|
|
|
func listPrivilege(c *bm.Context) {
|
|
data, err := svr.ListPrivilege()
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
log.Error("growup svr.AddPrivilege error(%v)", err)
|
|
return
|
|
}
|
|
c.JSON(data, nil)
|
|
}
|
|
|
|
func addPrivilege(c *bm.Context) {
|
|
v := new(struct {
|
|
Level int64 `form:"level" validate:"required"`
|
|
Name string `form:"name" validate:"required"`
|
|
FatherID int64 `form:"father_id"`
|
|
IsRouter uint8 `form:"is_router"`
|
|
})
|
|
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
if v.Level > 1 && v.FatherID == 0 {
|
|
c.Render(http.StatusOK, render.MapJSON(map[string]interface{}{
|
|
"code": ecode.RequestErr,
|
|
"message": "privilege > 1 but father_id = 0",
|
|
}))
|
|
return
|
|
}
|
|
err := svr.AddPrivilege(v.Name, v.Level, v.FatherID, v.IsRouter)
|
|
if err != nil {
|
|
log.Error("growup svr.AddPrivilege error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func updatePrivilege(c *bm.Context) {
|
|
v := new(struct {
|
|
ID int64 `form:"id" validate:"required"`
|
|
Level int64 `form:"level" validate:"required"`
|
|
Name string `form:"name" validate:"required"`
|
|
FatherID int64 `form:"father_id"`
|
|
IsRouter uint8 `form:"is_router"`
|
|
})
|
|
if err := c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
|
|
if v.Level > 1 && v.FatherID == 0 {
|
|
c.Render(http.StatusOK, render.MapJSON(map[string]interface{}{
|
|
"code": ecode.RequestErr,
|
|
"message": "privilege > 1 but father_id = 0",
|
|
}))
|
|
return
|
|
}
|
|
|
|
err := svr.UpdatePrivilege(v.ID, v.Name, v.Level, v.FatherID, v.IsRouter)
|
|
if err != nil {
|
|
log.Error("growup svr.UpdatePrivilege error(%v)", err)
|
|
}
|
|
c.JSON(nil, err)
|
|
}
|
|
|
|
func busPrivilege(c *bm.Context) {
|
|
username, _, err := checkCookie(c)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
log.Error("growup checkCookie error(%v)", err)
|
|
return
|
|
}
|
|
v := new(struct {
|
|
Type string `form:"type"`
|
|
})
|
|
if err = c.Bind(v); err != nil {
|
|
return
|
|
}
|
|
data, err := svr.BusPrivilege(c, username, v.Type)
|
|
if err != nil {
|
|
c.JSON(nil, err)
|
|
log.Error("growup svr.BusPrivilege error(%v)", err)
|
|
return
|
|
}
|
|
c.JSON(data, nil)
|
|
}
|