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 return m
} }
func SessCreate(m *ice.Message, username, userrole string) string { func SessCreate(m *ice.Message, username, userrole string) string {
m.Set(ice.MSG_RESULT)
_sess_auth(m, _sess_create(m, username), username, userrole) _sess_auth(m, _sess_create(m, username), username, userrole)
return m.Result() return m.Result()
} }

View File

@ -110,7 +110,7 @@ func init() {
_user_search(m, arg[0], arg[1], kit.Select("", arg, 2)) _user_search(m, arg[0], arg[1], kit.Select("", arg, 2))
}}, }},
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { }, 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.Cmdy(mdb.SELECT, USER, "", mdb.HASH, USERNAME, arg)
m.PushAction(mdb.REMOVE) 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)}, ROUTE: {Name: ROUTE, Help: "路由器", Value: kit.Data(kit.MDB_SHORT, kit.SSH_ROUTE)},
}, },
Commands: map[string]*ice.Command{ 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) { 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", "tmux")
m.Cmdy("web.code.publish", "contexts", "base") m.Cmdy("web.code.publish", "contexts", "base")
m.Cmdy("web.code.publish", "contexts", "miss") 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) { mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
switch arg[0] { switch arg[0] {
@ -83,22 +89,14 @@ func init() {
return 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) { m.Table(func(index int, value map[string]string, field []string) {
switch value[kit.MDB_TYPE] { if value[kit.MDB_TYPE] != MYSELF {
case MYSELF:
m.PushRender(kit.MDB_LINK, "a", value[kit.SSH_ROUTE], m.Option(ice.MSG_USERWEB))
default:
m.PushRender(kit.MDB_LINK, "a", value[kit.SSH_ROUTE], 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])))) 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] { switch value[kit.MDB_TYPE] {
case MYSELF, SERVER: case SERVER:
m.PushButton(gdb.START) m.PushButton(gdb.START)
case WORKER: case WORKER:
m.PushButton(gdb.STOP) m.PushButton(gdb.STOP)
@ -106,6 +104,15 @@ func init() {
m.PushButton("") 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) m.Sort(kit.SSH_ROUTE)
return // 设备列表 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") != "" { if r.URL.Path == "/" && m.Conf(SERVE, "meta.sso") != "" {
r.ParseForm()
sessid := r.FormValue(ice.MSG_SESSID) sessid := r.FormValue(ice.MSG_SESSID)
if sessid == "" { if sessid == "" {
if c, e := r.Cookie(ice.MSG_SESSID); e == nil { if c, e := r.Cookie(ice.MSG_SESSID); e == nil {

View File

@ -77,9 +77,7 @@ const SHARE = "share"
func init() { func init() {
Index.Merge(&ice.Context{ Index.Merge(&ice.Context{
Configs: map[string]*ice.Config{ Configs: map[string]*ice.Config{
SHARE: {Name: SHARE, Help: "共享链", Value: kit.Data( SHARE: {Name: SHARE, Help: "共享链", Value: kit.Data("expire", "72h")},
"expire", "72h",
)},
}, },
Commands: map[string]*ice.Command{ Commands: map[string]*ice.Command{
SHARE: {Name: "share hash auto", Help: "共享链", Action: map[string]*ice.Action{ 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), "river", m.Option(ice.MSG_RIVER), "storm", m.Option(ice.MSG_STORM),
kit.MDB_TIME, m.Time(m.Conf(SHARE, "meta.expire")), arg) 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) { 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)) 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) { }, 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.Cmdy(mdb.SELECT, SHARE, "", mdb.HASH, kit.MDB_HASH, arg)
m.PushAction("删除") 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/": {Name: "/share/local/", Help: "共享链", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
_share_local(m, arg...) _share_local(m, arg...)

View File

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

View File

@ -257,7 +257,20 @@ func init() {
m.Cmdy(mdb.IMPORT, RIVER, "", mdb.HASH) m.Cmdy(mdb.IMPORT, RIVER, "", mdb.HASH)
}}, }},
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) { mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
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) 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) { }, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Cmdy(mdb.SELECT, RIVER, "", mdb.HASH, kit.MDB_HASH, arg) m.Cmdy(mdb.SELECT, RIVER, "", mdb.HASH, kit.MDB_HASH, arg)
@ -285,6 +298,9 @@ func init() {
case USER, TOOL, NODE: case USER, TOOL, NODE:
m.Option(ice.MSG_RIVER, arg[0]) m.Option(ice.MSG_RIVER, arg[0])
m.Cmdy(m.Prefix(arg[1]), arg[2:]) m.Cmdy(m.Prefix(arg[1]), arg[2:])
case "action":
m.Option(ice.MSG_RIVER, arg[0])
m.Cmdy(RIVER, arg[1:])
default: default:
m.Cmdy(RIVER, arg) m.Cmdy(RIVER, arg)
} }