143 lines
2.7 KiB
Go
143 lines
2.7 KiB
Go
package http
|
|
|
|
import (
|
|
"net/http"
|
|
"strconv"
|
|
"strings"
|
|
|
|
"go-common/library/ecode"
|
|
"go-common/library/log"
|
|
bm "go-common/library/net/http/blademaster"
|
|
"go-common/library/xstr"
|
|
)
|
|
|
|
const _logout = "http://dashboard-mng.bilibili.co/logout?caller=manager-admin"
|
|
|
|
func authUser(c *bm.Context) {
|
|
var (
|
|
username string
|
|
)
|
|
if un, ok := c.Get("username"); ok {
|
|
username = un.(string)
|
|
} else {
|
|
c.JSON(nil, ecode.Unauthorized)
|
|
return
|
|
}
|
|
c.JSON(mngSvc.Auth(c, username))
|
|
}
|
|
|
|
func logout(c *bm.Context) {
|
|
// purge mid cache
|
|
c.Redirect(http.StatusFound, _logout)
|
|
}
|
|
|
|
func permissions(c *bm.Context) {
|
|
var username string
|
|
if username = c.Request.Form.Get("username"); username == "" {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
c.JSON(mngSvc.Permissions(c, username))
|
|
}
|
|
|
|
func users(c *bm.Context) {
|
|
var (
|
|
err error
|
|
pn, ps int
|
|
params = c.Request.Form
|
|
pnStr = params.Get("pn")
|
|
psStr = params.Get("ps")
|
|
)
|
|
if pn, err = strconv.Atoi(pnStr); err != nil || pn <= 0 {
|
|
pn = 1
|
|
}
|
|
if ps, err = strconv.Atoi(psStr); err != nil || ps <= 0 {
|
|
ps = 20
|
|
}
|
|
c.JSON(mngSvc.Users(c, pn, ps))
|
|
}
|
|
|
|
func usersTotal(c *bm.Context) {
|
|
var (
|
|
err error
|
|
total int64
|
|
)
|
|
if total, err = mngSvc.UsersTotal(c); err != nil {
|
|
log.Error("mngSvc.UsersTotal error(%v)", err)
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
c.JSON(struct {
|
|
Total int64 `json:"total"`
|
|
}{total}, nil)
|
|
}
|
|
|
|
func heartbeat(c *bm.Context) {
|
|
un, ok := c.Get("username")
|
|
if !ok {
|
|
log.Error("username not found in context")
|
|
return
|
|
}
|
|
c.JSON(nil, mngSvc.Heartbeat(c, un.(string)))
|
|
}
|
|
|
|
// batch check unames
|
|
func usersNames(c *bm.Context) {
|
|
var (
|
|
err error
|
|
params = c.Request.Form
|
|
uids string
|
|
uidsV []int64
|
|
items map[int64]string
|
|
)
|
|
if uids = params.Get("uids"); uids == "" {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
if uidsV, err = xstr.SplitInts(uids); err != nil {
|
|
log.Error("mngSvc.Unames(%s) error(%v)", uids, err)
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
items = mngSvc.Unames(c, uidsV)
|
|
c.JSON(items, nil)
|
|
}
|
|
|
|
// batch check users' departments
|
|
func usersDepts(c *bm.Context) {
|
|
var (
|
|
err error
|
|
params = c.Request.Form
|
|
uids string
|
|
uidsV []int64
|
|
items map[int64]string
|
|
)
|
|
if uids = params.Get("uids"); uids == "" {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
if uidsV, err = xstr.SplitInts(uids); err != nil {
|
|
log.Error("mngSvc.Udepts(%s) error(%v)", uids, err)
|
|
c.JSON(nil, err)
|
|
return
|
|
}
|
|
items = mngSvc.Udepts(c, uidsV)
|
|
c.JSON(items, nil)
|
|
}
|
|
|
|
func userIds(c *bm.Context) {
|
|
var (
|
|
params = c.Request.Form
|
|
unames string
|
|
unamesV []string
|
|
items map[string]int64
|
|
)
|
|
if unames = params.Get("unames"); unames == "" {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
unamesV = strings.Split(unames, ",")
|
|
items = mngSvc.UIds(c, unamesV)
|
|
c.JSON(items, nil)
|
|
}
|