You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
2.7 KiB
142 lines
2.7 KiB
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) |
|
}
|
|
|