1
0
forked from x/icebergs

opt share

This commit is contained in:
shaoying 2020-10-08 10:15:13 +08:00
parent 3a4480bb37
commit fe7c0209a0
7 changed files with 71 additions and 19 deletions

View File

@ -59,6 +59,7 @@ func SessCheck(m *ice.Message, sessid string) *ice.Message {
return m
}
func SessCreate(m *ice.Message, username, userrole string) string {
m.Set(ice.MSG_RESULT)
_sess_auth(m, _sess_create(m, username), username, userrole)
return m.Result()
}

View File

@ -110,7 +110,7 @@ func init() {
_user_search(m, arg[0], arg[1], kit.Select("", arg, 2))
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Option(mdb.FIELDS, kit.Select("time,userzone,usernick,username", mdb.DETAIL, len(arg) > 0))
m.Option(mdb.FIELDS, kit.Select(kit.Select("time,userzone,usernick,username", mdb.DETAIL, len(arg) > 0), m.Option(mdb.FIELDS)))
m.Cmdy(mdb.SELECT, USER, "", mdb.HASH, USERNAME, arg)
m.PushAction(mdb.REMOVE)
}},

View File

@ -47,11 +47,17 @@ func init() {
ROUTE: {Name: ROUTE, Help: "路由器", Value: kit.Data(kit.MDB_SHORT, kit.SSH_ROUTE)},
},
Commands: map[string]*ice.Command{
ROUTE: {Name: "route route ctx cmd auto invite", Help: "路由", Action: map[string]*ice.Action{
ROUTE: {Name: "route route ctx cmd auto invite share", Help: "路由", Action: map[string]*ice.Action{
SHARE: {Name: "share", Help: "共享", Hand: func(m *ice.Message, arg ...string) {
h := m.Cmdx(SHARE, mdb.CREATE, kit.MDB_TYPE, "login")
m.Cmdy("web.wiki.image", "qrcode", kit.MergeURL(m.Option(ice.MSG_USERWEB), SHARE, h))
}},
mdb.INVITE: {Name: "invite", Help: "添加", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy("web.code.publish", "contexts", "tmux")
m.Cmdy("web.code.publish", "contexts", "base")
m.Cmdy("web.code.publish", "contexts", "miss")
m.Cmdy("web.wiki.image", "qrcode", m.Option(ice.MSG_USERWEB))
}},
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
switch arg[0] {
@ -83,22 +89,14 @@ func init() {
return
}
m.Cmd(tcp.HOST).Table(func(index int, value map[string]string, head []string) {
m.Push(kit.MDB_TYPE, MYSELF)
m.Push(ROUTE, value["ip"])
})
m.Table(func(index int, value map[string]string, field []string) {
switch value[kit.MDB_TYPE] {
case MYSELF:
m.PushRender(kit.MDB_LINK, "a", value[kit.SSH_ROUTE], m.Option(ice.MSG_USERWEB))
default:
if value[kit.MDB_TYPE] != MYSELF {
m.PushRender(kit.MDB_LINK, "a", value[kit.SSH_ROUTE],
kit.MergeURL(m.Option(ice.MSG_USERWEB), kit.SSH_POD, kit.Keys(m.Option(kit.SSH_POD, value[kit.SSH_ROUTE]))))
}
switch value[kit.MDB_TYPE] {
case MYSELF, SERVER:
case SERVER:
m.PushButton(gdb.START)
case WORKER:
m.PushButton(gdb.STOP)
@ -106,6 +104,15 @@ func init() {
m.PushButton("")
}
})
m.Cmd(tcp.HOST).Table(func(index int, value map[string]string, head []string) {
m.Push(kit.MDB_TYPE, MYSELF)
m.Push(kit.SSH_ROUTE, ice.Info.NodeName)
u := kit.ParseURL(m.Option(ice.MSG_USERWEB))
m.PushRender(kit.MDB_LINK, "a", value["ip"], kit.Format("%s://%s:%s", u.Scheme, value["ip"], u.Port()))
m.PushButton(gdb.START)
})
m.Sort(kit.SSH_ROUTE)
return // 设备列表
}

View File

@ -53,9 +53,19 @@ func _serve_main(m *ice.Message, w http.ResponseWriter, r *http.Request) bool {
}()
}
if r.URL.Path == "/" && r.FormValue(SHARE) != "" {
m.W = w
s := m.Cmd(SHARE, mdb.SELECT, kit.MDB_HASH, r.FormValue(SHARE))
Render(m, COOKIE, aaa.SessCreate(m,
s.Append(aaa.USERNAME), s.Append(aaa.USERROLE),
))
m.W = nil
http.Redirect(w, r, kit.MergeURL(r.URL.String(), SHARE, ""), http.StatusTemporaryRedirect)
return false
}
// 单点登录
if r.URL.Path == "/" && m.Conf(SERVE, "meta.sso") != "" {
r.ParseForm()
sessid := r.FormValue(ice.MSG_SESSID)
if sessid == "" {
if c, e := r.Cookie(ice.MSG_SESSID); e == nil {

View File

@ -77,9 +77,7 @@ const SHARE = "share"
func init() {
Index.Merge(&ice.Context{
Configs: map[string]*ice.Config{
SHARE: {Name: SHARE, Help: "共享链", Value: kit.Data(
"expire", "72h",
)},
SHARE: {Name: SHARE, Help: "共享链", Value: kit.Data("expire", "72h")},
},
Commands: map[string]*ice.Command{
SHARE: {Name: "share hash auto", Help: "共享链", Action: map[string]*ice.Action{
@ -89,14 +87,34 @@ func init() {
"river", m.Option(ice.MSG_RIVER), "storm", m.Option(ice.MSG_STORM),
kit.MDB_TIME, m.Time(m.Conf(SHARE, "meta.expire")), arg)
}},
mdb.SELECT: {Name: "select hash", Help: "查询", Hand: func(m *ice.Message, arg ...string) {
m.Option(mdb.FIELDS, "time,hash,userrole,username,river,storm,type,name,text")
m.Cmdy(mdb.SELECT, SHARE, "", mdb.HASH, kit.MDB_HASH, m.Option(kit.MDB_HASH))
}},
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(mdb.DELETE, SHARE, "", mdb.HASH, kit.MDB_HASH, m.Option(kit.MDB_HASH))
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Option(mdb.FIELDS, "time,hash,userrole,username,river,storm,type,name,text")
m.Option(mdb.FIELDS, kit.Select("time,hash,userrole,username,river,storm,type,name,text", mdb.DETAIL, len(arg) > 0))
m.Cmdy(mdb.SELECT, SHARE, "", mdb.HASH, kit.MDB_HASH, arg)
m.PushAction("删除")
}},
"/share/": {Name: "/share/", Help: "共享链", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Option(mdb.FIELDS, kit.Select("time,hash,userrole,username,river,storm,type,name,text"))
switch msg := m.Cmd(mdb.SELECT, SHARE, "", mdb.HASH, kit.MDB_HASH, arg[0]); msg.Append(kit.MDB_TYPE) {
case "login":
switch kit.Select("", arg, 1) {
case "share":
list := []string{}
for _, k := range []string{"river", "storm"} {
if msg.Append(k) != "" {
list = append(list, k, msg.Append(k))
}
}
m.Render(ice.RENDER_QRCODE, kit.MergeURL2(m.Option(ice.MSG_USERWEB), "/", SHARE, arg[0], list))
}
}
}},
"/share/local/": {Name: "/share/local/", Help: "共享链", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
_share_local(m, arg...)

View File

@ -6,8 +6,8 @@ field "空间站" web.space
field "梦想家" web.dream
field "路由器" web.route
field "共享链" web.share
field "缓存池" web.cache
return
field "共享链" web.share
field "故事会" web.story

View File

@ -257,7 +257,20 @@ func init() {
m.Cmdy(mdb.IMPORT, RIVER, "", mdb.HASH)
}},
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(mdb.INPUTS, RIVER, "", mdb.HASH, arg)
switch arg[0] {
case aaa.USERNAME:
m.Cmdy(aaa.USER)
m.Appendv(ice.MSG_APPEND, "username", "usernick", "userzone")
case aaa.USERROLE:
m.Push(aaa.USERROLE, aaa.VOID)
m.Push(aaa.USERROLE, aaa.TECH)
m.Push(aaa.USERROLE, aaa.ROOT)
default:
m.Cmdy(mdb.INPUTS, RIVER, "", mdb.HASH, arg)
}
}},
web.SHARE: {Name: "share name", Help: "共享", Hand: func(m *ice.Message, arg ...string) {
m.Cmdy(web.SHARE, mdb.CREATE, kit.MDB_TYPE, "login", arg)
}},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Cmdy(mdb.SELECT, RIVER, "", mdb.HASH, kit.MDB_HASH, arg)
@ -285,6 +298,9 @@ func init() {
case USER, TOOL, NODE:
m.Option(ice.MSG_RIVER, arg[0])
m.Cmdy(m.Prefix(arg[1]), arg[2:])
case "action":
m.Option(ice.MSG_RIVER, arg[0])
m.Cmdy(RIVER, arg[1:])
default:
m.Cmdy(RIVER, arg)
}