c5_labsci/web/admin/index.go

177 lines
5.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package admin
import (
"fmt"
"net/http"
c "ciyon/zciyon"
)
func Index_init(w http.ResponseWriter, r *http.Request) bool {
//menuurl: 普通链接~原型图 4378,key 普通链接~原型图 共存
//menupow: d=删除|e=修改 p[id]e 默认p[id]v 显示权限 角色权限menu url<>'' 可选择授权
post := c.NewCiyPost(w, r)
_, userid := Verifyfast(r, c.CiyDB, post)
if userid == 0 {
return false
}
csql := c.NewCiySQL("zc_icon")
csql.Where("icontarget", 10).Column("targetid as id,icon")
iconrows, _, err := c.CiyDB.Get(csql)
if err != nil {
return c.ErrJSON(w, "遇到menu读取错误", err)
}
csql = c.NewCiySQL("zc_menu")
csql.Where("isuse", 1).Order("csort desc,id").Column("id,upid,name,url,pow")
menurows, _, err := c.CiyDB.Get(csql)
if err != nil {
return c.ErrJSON(w, "遇到menu读取错误", err)
}
if len(menurows) == 0 {
menu := map[string]any{}
menu["id"] = 2
menu["upid"] = 0
menu["name"] = "您无任何菜单权限"
menu["url"] = ""
menu["pow"] = ""
menurows = append(menurows, menu)
}
csql = c.NewCiySQL("zc_mnufav")
csql.Where("favtarget", 10).Where("user", userid).Column("menuid")
mnufavrows, _, err := c.CiyDB.Get(csql)
if err != nil {
return c.ErrJSON(w, "遇到mnufav读取错误", err)
}
ret := map[string]any{}
ret["icon"] = iconrows
ret["menu"] = menurows
ret["mnufav"] = mnufavrows
ret["welcome"] = map[string]any{
"url": "welcome.html",
"name": "控制台",
}
ret["title"] = "Ciyon SaaS总控台"
return c.SuccJSON(w, r, ret)
}
func Index_favadd(w http.ResponseWriter, r *http.Request) bool {
post := c.NewCiyPost(w, r)
_, userid := Verifyfast(r, c.CiyDB, post)
if userid == 0 {
return false
}
menuid := post.Getint("id")
csql := c.NewCiySQL("zc_mnufav")
csql.Where("favtarget", 10).Where("user", userid).Where("menuid", menuid)
favrow, err := c.CiyDB.Getone(csql)
if err != nil {
return c.ErrJSON(w, "遇到fav读取错误", err)
}
if favrow == nil {
updata := map[string]any{}
updata["favtarget"] = 10
updata["user"] = userid
updata["menuid"] = menuid
updata["addtimes"] = c.Tostamp()
csql := c.NewCiySQL("zc_mnufav")
_, err = c.CiyDB.Insert(csql, updata)
if err != nil {
return c.ErrJSON(w, "添加fav失败", err)
}
}
return c.SuccJSON(w, r)
}
func Index_favdel(w http.ResponseWriter, r *http.Request) bool {
post := c.NewCiyPost(w, r)
_, userid := Verifyfast(r, c.CiyDB, post)
if userid == 0 {
return false
}
menuid := post.Getint("id")
csql := c.NewCiySQL("zc_mnufav")
csql.Where("favtarget", 10).Where("user", userid).Where("menuid", menuid)
_, err := c.CiyDB.Delete(csql)
if err != nil {
return c.ErrJSON(w, "删除fav失败", err)
}
return c.SuccJSON(w, r)
}
func Index_setssh(w http.ResponseWriter, r *http.Request) bool {
post := c.NewCiyPost(w, r)
_, userid := Verifyfast(r, c.CiyDB, post)
if userid == 0 {
return false
}
if Nopower(c.CiyDB, userid, "x1ssh") {
return c.ErrJSON(w, "您未被授权操作")
}
able := post.Getbool("able") //true打开SSH允许远程访问。 false关闭防火墙禁止访问
if able {
//开启后,需定时关闭防火墙
fmt.Println("开启SSH远程访问")
}
return c.SuccJSON(w, r)
}
// if strings.HasPrefix(r.Header.Get("Content-Type"), "multipart/form-data") {
// err := r.ParseMultipartForm(5 * 1024 * 1024 * 1024)
// if err == nil {
// Clog("POST MultipartForm:", r.MultipartForm) //.Value["aaa"]
// } else {
// Clog("POST MultipartForm err:", err)
// }
// file, header, err := r.FormFile("file")
// Clog("POST FormFile:", file, header, err)
// } else {
// post := c.NewCiyPost(w, r)
// fff := post.Get("str", c.CIYPOST_ALLOW_HTML)
// Clog("post str:", fff)
// // ddd = post.Getdate("date")
// // Clog("post time:", ddd)
// // det = c.Todate(ddd, "Y-m-d H:i:s")
// //Clog("post json:", post)
// }
// Clog("Headers:", r.Header)
// Clog("Cookies:", r.Cookies())
// Clog("Query:", r.URL.Query())
// if err := r.ParseForm(); err != nil {
// Clog("Error parsing form:", err)
// }
// Clog("POST Form:", r.Form) //get/post混合
// Clog("POST PostForm:", r.PostForm) //xform
// err := r.ParseMultipartForm(5 * 1024 * 1024 * 1024)
// if err == nil {
// Clog("POST MultipartForm:", r.MultipartForm) //.Value["aaa"]
// } else {
// Clog("POST MultipartForm err:", err)
// }
// file, header, err := r.FormFile("file")
// Clog("POST FormFile:", file, header, err)
// // 获取特定POST参数
// // name := r.PostForm.Get("aaa")
// // Clog("POST Param Get:", name)
// body, err := io.ReadAll(r.Body)
// if err != nil {
// http.Error(w, "Error reading request body", http.StatusInternalServerError)
// return
// }
// Clog("POST json:", string(body))
// // 获取请求的URL
// Clog("URL:", r.URL)
// Clog("Scheme:", r.URL.Scheme)
// Clog("Opaque:", r.URL.Opaque)
// Clog("User:", r.URL.User)
// Clog("Host:", r.URL.Host)
// Clog("Path:", r.URL.Path)
// Clog("RawPath:", r.URL.RawPath)
// Clog("OmitHost:", r.URL.OmitHost)
// Clog("ForceQuery:", r.URL.ForceQuery)
// Clog("RawQuery:", r.URL.RawQuery)
// Clog("Fragment:", r.URL.Fragment)
// Clog("RawFragment:", r.URL.RawFragment)