123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788 |
- package http
- import (
- "strings"
- "go-common/app/admin/main/apm/conf"
- "go-common/app/admin/main/apm/model/user"
- "go-common/library/conf/env"
- "go-common/library/ecode"
- "go-common/library/log"
- bm "go-common/library/net/http/blademaster"
- "github.com/jinzhu/gorm"
- )
- func name(ctx *bm.Context) (name string) {
- usernameI, _ := ctx.Get("username")
- name, _ = usernameI.(string)
- return
- }
- func userAuth(c *bm.Context) {
- var (
- usr = &user.User{}
- username = name(c)
- err error
- mdls []*user.Module
- rls []*user.Rule
- super bool
- )
- if usr, err = apmSvc.GetUser(c, username); err != nil {
- log.Error("apmSvc.userAuth error(%v)", err)
- c.JSON(nil, err)
- return
- }
- // err := apmSvc.DB.Where("username = ?", username).First(usr).Error
- // if err == gorm.ErrRecordNotFound {
- // usr.UserName = username
- // usr.NickName = username
- // err = apmSvc.DB.Create(usr).Error
- // }
- // if err != nil {
- // log.Error("apmSvc.userAuth error(%v)", err)
- // c.JSON(nil, err)
- // return
- // }
- for _, u := range conf.Conf.Superman {
- if u == username {
- super = true
- break
- }
- }
- var (
- ms []string
- rs []string
- )
- if super {
- for m := range user.Modules {
- ms = append(ms, m)
- for rl := range user.Rules {
- if strings.HasPrefix(rl+"_", m) {
- rs = append(rs, rl)
- }
- }
- }
- } else {
- ms, rs = apmSvc.GetDefaultPermission(c)
- if err = apmSvc.DB.Where("user_id=?", usr.ID).Find(&mdls).Error; err != nil {
- log.Error("apmSvc.userAuth modules error(%v)", err)
- c.JSON(nil, err)
- return
- }
- if err = apmSvc.DB.Where("user_id=?", usr.ID).Find(&rls).Error; err != nil {
- log.Error("apmSvc.userAuth rules error(%v)", err)
- c.JSON(nil, err)
- return
- }
- for _, m := range mdls {
- ms = append(ms, m.Module)
- }
- for _, r := range rls {
- rs = append(rs, r.Rule)
- }
- }
- data := user.Result{
- Super: super,
- User: usr,
- Env: env.DeployEnv,
- Rules: append(ms, rs...),
- }
- c.JSON(data, nil)
- }
- func userRuleStates(c *bm.Context) {
- username := name(c)
- usr := &user.User{}
- err := apmSvc.DB.Where("username = ?", username).First(usr).Error
- if err != nil {
- log.Error("apmSvc.userRuleStates error(%v)", err)
- c.JSON(nil, err)
- return
- }
- for _, u := range conf.Conf.Superman {
- if u == username {
- c.JSONMap(map[string]interface{}{
- "message": "超级管理员拥有所有权限",
- }, nil)
- return
- }
- }
- var (
- //app *user.Apply
- rls []*user.Rule
- )
- app := &user.Apply{}
- if err = apmSvc.DB.Where("user_id=? AND status=?", usr.ID, 1).First(app).Error; err != nil && err != gorm.ErrRecordNotFound {
- log.Error("apm.Svc.userRuleStates error(%v)", err)
- c.JSON(nil, err)
- return
- }
- if err = apmSvc.DB.Where("user_id=?", usr.ID).Find(&rls).Error; err != nil && err != gorm.ErrRecordNotFound {
- log.Error("apm.Svc.userRuleStates error(%v)", err)
- c.JSON(nil, err)
- return
- }
- trs := strings.Split(app.Rules, ",")
- type ruleRes struct {
- Rule string `json:"rule"`
- Name string `json:"name"`
- State int `json:"state"`
- }
- data := map[string][]*ruleRes{}
- for module := range user.Modules {
- if env.DeployEnv != env.DeployEnvProd && module == "CONFIG" {
- continue
- }
- if user.Modules[module].Permit == user.PermitSuper {
- continue
- }
- // if module == "USER" {
- // continue
- // }
- NEXTRULE:
- for rule := range user.Rules {
- if !strings.HasPrefix(rule, module) {
- continue
- }
- rr := &ruleRes{Rule: rule, Name: user.Rules[rule].Des, State: 0}
- _, rdft := apmSvc.GetDefaultPermission(c)
- for _, rl := range rdft {
- if rule == rl {
- rr.State = 1
- data[module] = append(data[module], rr)
- continue NEXTRULE
- }
- }
- for _, rl := range rls {
- if rule == rl.Rule {
- rr.State = 1
- data[module] = append(data[module], rr)
- continue NEXTRULE
- }
- }
- for _, tr := range trs {
- if rule == tr {
- rr.State = 2
- data[module] = append(data[module], rr)
- continue NEXTRULE
- }
- }
- data[module] = append(data[module], rr)
- }
- }
- c.JSON(map[string]interface{}{
- "user": usr,
- "rule_states": data,
- }, nil)
- }
- func userApply(c *bm.Context) {
- username := name(c)
- usr := &user.User{}
- if err := apmSvc.DB.Where("username = ?", username).First(usr).Error; err != nil {
- log.Error("apmSvc.userApply error(%v)", err)
- c.JSON(nil, err)
- return
- }
- v := new(struct {
- Rules []string `form:"rules,split" validate:"required"`
- })
- if err := c.Bind(v); err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- for _, rule := range v.Rules {
- if _, ok := user.Rules[rule]; !ok {
- c.JSONMap(map[string]interface{}{
- "message": "申请的操作不存在",
- }, nil)
- return
- }
- }
- istr := strings.Join(v.Rules, ",")
- m := &user.Apply{
- UserID: usr.ID,
- Rules: istr,
- Status: 1,
- }
- db := apmSvc.DB.Model(&user.Apply{}).Create(m)
- if err := db.Error; err != nil {
- log.Error("apmSvc.userApply error(%v)", err)
- c.JSON(nil, err)
- return
- }
- c.JSONMap(map[string]interface{}{
- "message": "申请成功",
- }, nil)
- }
- func userApplyEdit(c *bm.Context) {
- v := new(struct {
- ID int64 `form:"id" validate:"required"`
- Rules []string `form:"rules,split" validate:"required"`
- })
- var err error
- if err = c.Bind(v); err != nil {
- return
- }
- for _, r := range v.Rules {
- if _, ok := user.Rules[r]; !ok {
- c.JSONMap(map[string]interface{}{
- "message": "申请的操作不存在",
- }, nil)
- return
- }
- }
- username := name(c)
- if err = apmSvc.DB.Model(&user.Apply{}).Where("status = 1 AND id = ?", v.ID).Update(map[string]interface{}{
- "rules": strings.Join(v.Rules, ","), "admin": username}).Error; err != nil {
- log.Error("apmSvc.userApplyEdit error(%v)", err)
- c.JSON(nil, err)
- return
- }
- c.JSONMap(map[string]interface{}{
- "message": "修改成功",
- }, nil)
- }
- func userAudit(c *bm.Context) {
- username := name(c)
- super := false
- for _, u := range conf.Conf.Superman {
- if u == username {
- super = true
- break
- }
- }
- if !super {
- c.JSON(nil, ecode.AccessDenied)
- return
- }
- v := new(struct {
- ID int64 `form:"id" validate:"required"`
- Status int8 `form:"status" validate:"required"`
- })
- if err := c.Bind(v); err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- if !(v.Status == 2 || v.Status == 3) {
- log.Error("apmSvc.userAudit error(%v)", v.Status)
- c.JSONMap(map[string]interface{}{
- "message": "status值范围为2,3",
- }, ecode.RequestErr)
- return
- }
- if err := apmSvc.DB.Model(&user.Apply{}).Where("id = ? AND status = ?", v.ID, 1).Updates(map[string]interface{}{"status": v.Status, "admin": username}).Error; err != nil {
- log.Error("apmSvc.userAudit update user_apply error(%v)", err)
- c.JSON(nil, err)
- return
- }
- if v.Status == 3 {
- c.JSONMap(map[string]interface{}{
- "message": "权限审核不通过",
- }, nil)
- return
- }
- apps := &user.Apply{}
- if err := apmSvc.DB.Where("id=?", v.ID).First(apps).Error; err != nil {
- log.Error("apmSvc.userAudit find user_apply error(%v)", err)
- c.JSON(nil, err)
- return
- }
- rules := strings.Split(apps.Rules, ",")
- for _, rule := range rules {
- r := &user.Rule{}
- apmSvc.DB.FirstOrCreate(r, &user.Rule{UserID: apps.UserID, Rule: rule})
- for module := range user.Modules {
- if strings.HasPrefix(rule, module) {
- m := &user.Module{}
- apmSvc.DB.FirstOrCreate(m, &user.Module{UserID: apps.UserID, Module: module})
- }
- }
- }
- c.JSONMap(map[string]interface{}{
- "message": "权限审核通过",
- }, nil)
- }
- func userApplies(c *bm.Context) {
- username := name(c)
- v := new(struct {
- Pn int `form:"pn" default:"1" validate:"min=1"`
- Ps int `form:"ps" default:"20" validate:"min=1"`
- Name string `form:"name"`
- })
- err := c.Bind(v)
- if err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- var (
- super bool
- total int
- applies []*user.Applies
- )
- for _, u := range conf.Conf.Superman {
- if u == username {
- super = true
- break
- }
- }
- if !super {
- c.JSON(nil, ecode.AccessDenied)
- return
- }
- if v.Name != "" {
- err = apmSvc.DB.Raw(`SELECT user_apply.id, user_apply.user_id,user.username,user_apply.rules,user_apply.status
- FROM user_apply LEFT JOIN user ON user_apply.user_id=user.id WHERE user_apply.status=? AND (user.username like ? OR user.nickname like ?)`,
- 1, "%"+v.Name+"%", "%"+v.Name+"%").Order("user_apply.id desc").Offset((v.Pn - 1) * v.Ps).Limit(v.Ps).Find(&applies).Error
- } else {
- err = apmSvc.DB.Raw(`SELECT user_apply.id, user_apply.user_id,user.username,user_apply.rules,user_apply.status
- FROM user_apply LEFT JOIN user ON user_apply.user_id=user.id WHERE user_apply.status=?`,
- 1).Order("user_apply.id desc").Offset((v.Pn - 1) * v.Ps).Limit(v.Ps).Find(&applies).Error
- }
- // err := apmSvc.DB.Raw(`SELECT user_apply.id, user_apply.user_id,user.username,user_apply.rules,user_apply.status
- // FROM user_apply LEFT JOIN user ON user_apply.user_id=user.id WHERE user_apply.status=?`, 1).Scan(&applies).Error
- if err == gorm.ErrRecordNotFound {
- c.JSONMap(map[string]interface{}{
- "message": "当前没有任何申请",
- }, nil)
- return
- }
- if v.Name != "" {
- err = apmSvc.DB.Model(&user.Apply{}).Joins("LEFT JOIN user ON user_apply.user_id=user.id").Where(`user_apply.status=?
- AND (user.username like ? OR user.nickname like ?)`, 1, "%"+v.Name+"%", "%"+v.Name+"%").Count(&total).Error
- } else {
- err = apmSvc.DB.Model(&user.Apply{}).Joins(`LEFT JOIN user ON user_apply.user_id=user.id`).Where(`user_apply.status=?`, 1).Count(&total).Error
- }
- if err != nil {
- log.Error("apmSvc.userApplies error(%v)", err)
- c.JSON(nil, err)
- return
- }
- data := &Paper{
- Pn: v.Pn,
- Ps: v.Ps,
- Items: applies,
- Total: total,
- }
- c.JSON(data, nil)
- }
- func userList(c *bm.Context) {
- v := new(struct {
- Pn int `form:"pn" default:"1" validate:"min=1"`
- Ps int `form:"ps" default:"20" validate:"min=1"`
- Name string `form:"name"`
- })
- var err error
- if err = c.Bind(v); err != nil {
- return
- }
- var (
- pts []*user.User
- total int
- )
- s := "%" + v.Name + "%"
- if v.Name != "" {
- err = apmSvc.DB.Where("username LIKE ? OR nickname LIKE ?", s, s).Order("id").Offset((v.Pn - 1) * v.Ps).Limit(v.Ps).Find(&pts).Error
- } else {
- err = apmSvc.DB.Order("id").Offset((v.Pn - 1) * v.Ps).Limit(v.Ps).Find(&pts).Error
- }
- if err != nil {
- log.Error("apmSvc.Users error(%v)", err)
- c.JSON(nil, err)
- return
- }
- if v.Name != "" {
- err = apmSvc.DB.Where("username LIKE ? OR nickname LIKE ?", s, s).Model(&user.User{}).Count(&total).Error
- } else {
- err = apmSvc.DB.Model(&user.User{}).Count(&total).Error
- }
- if err != nil {
- log.Error("apmSvc.Users count error(%v)", err)
- c.JSON(nil, err)
- return
- }
- data := &Paper{
- Pn: v.Pn,
- Ps: v.Ps,
- Items: pts,
- Total: total,
- }
- c.JSON(data, nil)
- }
- func userInfo(c *bm.Context) {
- v := new(struct {
- ID int64 `form:"id" validate:"required"`
- })
- var err error
- if err = c.Bind(v); err != nil {
- return
- }
- usr := &user.User{}
- if err = apmSvc.DB.First(usr, v.ID).Error; err != nil {
- log.Error("apmSvc.userInfo error(%v)", err)
- c.JSON(nil, err)
- return
- }
- c.JSON(usr, nil)
- }
- func userEdit(c *bm.Context) {
- v := new(struct {
- ID int64 `form:"id" validate:"required"`
- Nickname string `form:"nickname"`
- Email string `form:"email"`
- Phone string `form:"phone"`
- })
- var err error
- if err = c.Bind(v); err != nil {
- return
- }
- usr := &user.User{}
- if err = apmSvc.DB.First(usr, v.ID).Error; err != nil {
- c.JSON(nil, err)
- return
- }
- if err = apmSvc.DB.Model(&user.User{}).Where("id = ?", v.ID).Omit("id").UpdateColumns(v).Error; err != nil {
- log.Error("apmSvc.userEdit error(%v)", err)
- c.JSON(nil, err)
- return
- }
- sqlLog := &map[string]interface{}{
- "SQLType": "update",
- "Where": "id = ?",
- "Value1": v.ID,
- "Update": v,
- "Old": usr,
- }
- username := name(c)
- apmSvc.SendLog(*c, username, 0, 2, int64(v.ID), "apmSvc.userEdit", sqlLog)
- c.JSON(nil, err)
- }
- func userModules(c *bm.Context) {
- v := new(struct {
- ID int64 `form:"id" validate:"required"`
- })
- var err error
- if err = c.Bind(v); err != nil {
- return
- }
- usr := &user.User{}
- if err = apmSvc.DB.First(usr, v.ID).Error; err != nil {
- log.Error("apmSvc.userInfo error(%v)", err)
- c.JSON(nil, err)
- return
- }
- var mdls []*user.Module
- if err = apmSvc.DB.Where("user_id=?", usr.ID).Find(&mdls).Error; err != nil {
- log.Error("apmSvc.userAuth modules error(%v)", err)
- c.JSON(nil, err)
- return
- }
- var ms []string
- for _, m := range mdls {
- ms = append(ms, m.Module)
- }
- allMds := make(map[string]string)
- for module := range user.Modules {
- allMds[module] = user.Modules[module].Des
- }
- data := map[string]interface{}{
- "owns": ms,
- "modules": allMds,
- }
- c.JSON(data, nil)
- }
- func userRules(c *bm.Context) {
- v := new(struct {
- ID int64 `form:"id" validate:"required"`
- })
- var err error
- if err = c.Bind(v); err != nil {
- return
- }
- usr := &user.User{}
- if err = apmSvc.DB.First(usr, v.ID).Error; err != nil {
- log.Error("apmSvc.userInfo error(%v)", err)
- c.JSON(nil, err)
- return
- }
- var (
- mdls []*user.Module
- rls []*user.Rule
- )
- if err = apmSvc.DB.Where("user_id=?", usr.ID).Find(&mdls).Error; err != nil {
- log.Error("apmSvc.userAuth modules error(%v)", err)
- c.JSON(nil, err)
- return
- }
- if err = apmSvc.DB.Where("user_id=?", usr.ID).Find(&rls).Error; err != nil {
- log.Error("apmSvc.userAuth rules error(%v)", err)
- c.JSON(nil, err)
- return
- }
- var rs []string
- for _, r := range rls {
- rs = append(rs, r.Rule)
- }
- allRls := map[string]string{}
- for _, mdl := range mdls {
- for rl, rlM := range user.Rules {
- if strings.HasPrefix(rl+"_", mdl.Module) {
- allRls[rl] = rlM.Des
- }
- }
- }
- data := map[string]interface{}{
- "owns": rs,
- "rules": allRls,
- }
- c.JSON(data, nil)
- }
- func userModulesEdit(c *bm.Context) {
- v := new(struct {
- ID int64 `form:"id" validate:"required"`
- Modules []string `form:"modules,split"`
- })
- var err error
- if err = c.Bind(v); err != nil {
- return
- }
- usr := &user.User{}
- if err = apmSvc.DB.First(usr, v.ID).Error; err != nil {
- c.JSON(nil, err)
- return
- }
- var mdls []*user.Module
- if err = apmSvc.DB.Where("user_id=?", usr.ID).Find(&mdls).Error; err != nil {
- log.Error("apmSvc.moduleEdit modules error(%v)", err)
- c.JSON(nil, err)
- return
- }
- var (
- ns []*user.Module
- ds []string
- )
- for _, m := range v.Modules {
- if len(mdls) == 0 {
- ns = append(ns, &user.Module{UserID: usr.ID, Module: m})
- continue
- }
- for j, mdl := range mdls {
- if m == mdl.Module {
- break
- }
- if j+1 == len(mdls) {
- ns = append(ns, &user.Module{UserID: usr.ID, Module: m})
- }
- }
- }
- for _, mdl := range mdls {
- if len(v.Modules) == 0 {
- ds = append(ds, mdl.Module)
- continue
- }
- for j, m := range v.Modules {
- if m == mdl.Module {
- break
- }
- if j+1 == len(v.Modules) {
- ds = append(ds, mdl.Module)
- }
- }
- }
- if err = apmSvc.DB.Exec("DELETE FROM user_module WHERE user_id=? AND module IN (?)", usr.ID, ds).Error; err != nil {
- log.Error("apmSvc.moduleEdit delModule error(%v)", err)
- c.JSON(nil, err)
- return
- }
- var sqlLogs []*map[string]interface{}
- sqlLog := &map[string]interface{}{
- "SQLType": "delete",
- "Where": "DELETE FROM user_module WHERE user_id=? AND module IN (?)",
- "Value1": usr.ID,
- "Value2": ds,
- "Update": "",
- "Old": "",
- }
- sqlLogs = append(sqlLogs, sqlLog)
- username := name(c)
- // apmSvc.SendLog(c, username, 0, 2, int64(v.ID), "apmSvc.moduleEdit", sqlLog)
- for _, d := range ds {
- if err = apmSvc.DB.Exec("DELETE FROM user_rule WHERE user_id=? AND rule LIKE ?", usr.ID, d+"_%").Error; err != nil {
- log.Error("apmSvc.moduleEdit delModule error(%v)", err)
- c.JSON(nil, err)
- apmSvc.SendLog(*c, username, 0, 2, 0, "apmSvc.moduleEdit", sqlLogs)
- return
- }
- sqlLog := &map[string]interface{}{
- "SQLType": "delete",
- "Where": "DELETE FROM user_rule WHERE user_id=? AND rule LIKE ?",
- "Value1": usr.ID,
- "Value2": d + "_%",
- "Update": "",
- "Old": "",
- }
- sqlLogs = append(sqlLogs, sqlLog)
- }
- for _, n := range ns {
- if err = apmSvc.DB.Create(n).Error; err != nil {
- log.Error("apmSvc.moduleEdit addModule error(%v)", err)
- c.JSON(nil, err)
- apmSvc.SendLog(*c, username, 0, 2, 0, "apmSvc.moduleEdit", sqlLogs)
- return
- }
- sqlLog := &map[string]interface{}{
- "SQLType": "add",
- "Content": n,
- }
- sqlLogs = append(sqlLogs, sqlLog)
- }
- apmSvc.SendLog(*c, username, 0, 2, 0, "apmSvc.moduleEdit", sqlLogs)
- c.JSON(nil, err)
- }
- func userRulesEdit(c *bm.Context) {
- v := new(struct {
- ID int64 `form:"id" validate:"required"`
- Rules []string `form:"rules,split"`
- })
- var err error
- if err = c.Bind(v); err != nil {
- return
- }
- usr := &user.User{}
- if err = apmSvc.DB.First(usr, v.ID).Error; err != nil {
- c.JSON(nil, err)
- return
- }
- var mdls []*user.Module
- if err = apmSvc.DB.Where("user_id=?", usr.ID).Find(&mdls).Error; err != nil {
- log.Error("apmSvc.moduleEdit modules error(%v)", err)
- c.JSON(nil, err)
- return
- }
- if len(mdls) == 0 {
- log.Error("apmSvc.moduleEdit have not module error(%v)", err)
- c.JSON(nil, ecode.RequestErr)
- return
- }
- for _, rl := range v.Rules {
- var has bool
- for _, mdl := range mdls {
- if has = strings.HasPrefix(rl, mdl.Module); has {
- break
- }
- }
- if !has {
- log.Error("apmSvc.moduleEdit have not module error(%v)", err)
- c.JSON(nil, ecode.RequestErr)
- return
- }
- }
- var rls []*user.Rule
- if err = apmSvc.DB.Where("user_id=?", usr.ID).Find(&rls).Error; err != nil {
- log.Error("apmSvc.ruleEdit modules error(%v)", err)
- c.JSON(nil, err)
- return
- }
- var (
- ns []*user.Rule
- ds []string
- )
- for _, m := range v.Rules {
- if len(rls) == 0 {
- ns = append(ns, &user.Rule{UserID: usr.ID, Rule: m})
- continue
- }
- for j, rl := range rls {
- if m == rl.Rule {
- break
- }
- if j+1 == len(rls) {
- ns = append(ns, &user.Rule{UserID: usr.ID, Rule: m})
- }
- }
- }
- for _, rl := range rls {
- if len(v.Rules) == 0 {
- ds = append(ds, rl.Rule)
- continue
- }
- for j, m := range v.Rules {
- if m == rl.Rule {
- break
- }
- if j+1 == len(v.Rules) {
- ds = append(ds, rl.Rule)
- }
- }
- }
- var sqlLogs []*map[string]interface{}
- if err = apmSvc.DB.Exec("DELETE FROM user_rule WHERE user_id=? AND rule IN (?)", usr.ID, ds).Error; err != nil {
- log.Error("apmSvc.ruleEdit delModule error(%v)", err)
- c.JSON(nil, err)
- return
- }
- sqlLog := &map[string]interface{}{
- "SQLType": "delete",
- "Where": "DELETE FROM user_rule WHERE user_id=? AND rule IN (?)",
- "Value1": usr.ID,
- "Value2": ds,
- "Update": "",
- "Old": "",
- }
- username := name(c)
- sqlLogs = append(sqlLogs, sqlLog)
- for _, n := range ns {
- if err = apmSvc.DB.Create(n).Error; err != nil {
- log.Error("apmSvc.ruleEdit addModule error(%v)", err)
- c.JSON(nil, err)
- apmSvc.SendLog(*c, username, 0, 2, 0, "apmSvc.ruleEdit", sqlLogs)
- return
- }
- sqlLog := &map[string]interface{}{
- "SQLType": "add",
- "Content": n,
- }
- sqlLogs = append(sqlLogs, sqlLog)
- }
- apmSvc.SendLog(*c, username, 0, 2, 0, "apmSvc.ruleEdit", sqlLogs)
- c.JSON(nil, err)
- }
- func userSyncTree(c *bm.Context) {
- username := name(c)
- apmSvc.TreeSync(c, username, c.Request.Header.Get("Cookie"))
- c.JSON(nil, nil)
- }
- func userTreeAppids(c *bm.Context) {
- username := name(c)
- appids, err := apmSvc.Appids(c, username, c.Request.Header.Get("Cookie"))
- if err != nil {
- log.Error("%v", err)
- c.JSON(nil, err)
- return
- }
- c.JSON(appids, nil)
- }
- func userTreeDiscovery(c *bm.Context) {
- username := name(c)
- appids, err := apmSvc.DiscoveryID(c, username, c.Request.Header.Get("Cookie"))
- if err != nil {
- log.Error("%v", err)
- c.JSON(nil, err)
- return
- }
- c.JSON(appids, nil)
- }
|