diff --git a/base/web/space.go b/base/web/space.go index 26162ef4..906b8ef1 100644 --- a/base/web/space.go +++ b/base/web/space.go @@ -77,6 +77,7 @@ func _space_fork(m *ice.Message) { m.Cmd(SPACE, name, ice.MSG_SESSID, m.Option(ice.MSG_SESSID)) } gdb.Event(m, SPACE_LOGIN, args) + defer gdb.Event(m, SPACE_LOGIN_CLOSE, args) } _space_handle(m, false, name, c) }, kit.Join(kit.Simple(SPACE, name), lex.SP)) @@ -172,8 +173,9 @@ const ( REDIAL = "redial" ) const ( - SPACE_LOGIN = "space.login" - SPACE_GRANT = "space.grant" + SPACE_LOGIN = "space.login" + SPACE_LOGIN_CLOSE = "space.login.close" + SPACE_GRANT = "space.grant" ) const SPACE = "space" @@ -184,6 +186,8 @@ func init() { m.Cmd(SPACE, func(value ice.Maps) { kit.If(kit.IsIn(value[mdb.TYPE], WORKER, SERVER), func() { m.Push(arg[0], value[mdb.NAME]) }) }) + case tcp.WIFI: + m.Cmdy(tcp.WIFI).CutTo(tcp.SSID, arg[0]) case mdb.ICON: m.Cmdy(nfs.DIR, ice.USR_ICONS, nfs.PATH).CutTo(nfs.PATH, arg[0]) case ctx.INDEX: diff --git a/misc/wx/access.go b/misc/wx/access.go index f46a95a0..91f389eb 100644 --- a/misc/wx/access.go +++ b/misc/wx/access.go @@ -85,18 +85,19 @@ func init() { } m.Echo(msg.Append(TICKET)).Status(msg.AppendSimple(EXPIRE)) }}, - web.SSO: {Name: "sso name*=微信扫码", Help: "登录", Hand: func(m *ice.Message, arg ...string) { + web.SSO: {Name: "sso name*=微信扫码 wifi env=release,trial,develop", Help: "登录", Hand: func(m *ice.Message, arg ...string) { m.Cmd(web.CHAT_HEADER, mdb.CREATE, mdb.TYPE, mdb.PLUGIN, m.OptionSimple(mdb.NAME), - ctx.INDEX, m.PrefixKey(), ctx.ARGS, kit.Join(kit.Simple(aaa.LOGIN, m.Option(ACCESS)))) + ctx.INDEX, m.PrefixKey(), ctx.ARGS, kit.Join(kit.Simple(aaa.LOGIN, m.Option(ACCESS), m.Option(tcp.WIFI), m.Option(ENV)))) }}, aaa.LOGIN: {Hand: func(m *ice.Message, arg ...string) { if m.Cmd("", m.Option(ACCESS, arg[0])).Append(mdb.TYPE) == ice.WEB { m.Cmdy(SCAN, mdb.CREATE, mdb.TYPE, QR_STR_SCENE, mdb.NAME, "授权登录", mdb.TEXT, m.Option(web.SPACE), ctx.INDEX, web.CHAT_GRANT, ctx.ARGS, m.Option(web.SPACE)) } else { - h := m.Cmdx(IDE, mdb.CREATE, mdb.NAME, m.Option(web.SPACE), PAGES, "pages/action/action", - ctx.INDEX, web.CHAT_GRANT, ctx.ARGS, kit.JoinQuery(m.OptionSimple(web.SPACE, log.DEBUG)...)) - m.Echo(m.Cmdx(SCAN, UNLIMIT, SCENE, h, ENV, "release", mdb.NAME, m.Option(web.SPACE))) + h := m.Cmdx(IDE, mdb.CREATE, mdb.NAME, m.Option(web.SPACE), PAGES, PAGES_ACTION, tcp.WIFI, kit.Select("", arg, 1), + ctx.INDEX, web.CHAT_GRANT, ctx.ARGS, kit.JoinQuery(m.OptionSimple(web.SPACE, log.DEBUG)...), + ) + m.Echo(m.Cmdx(SCAN, UNLIMIT, SCENE, h, ENV, kit.Select("release", arg, 2), IS_HYALINE, ice.FALSE, mdb.NAME, m.Option(web.SPACE))) } }}, web.SPACE_GRANT: {Hand: func(m *ice.Message, arg ...string) { @@ -105,7 +106,11 @@ func init() { m.Cmd(mdb.PRUNES, m.Prefix(IDE), "", mdb.HASH, mdb.NAME, m.Option(web.SPACE)) } }}, - }, aaa.RoleAction(aaa.LOGIN), gdb.EventsAction(web.SPACE_GRANT), mdb.ImportantHashAction(mdb.SHORT, ACCESS, mdb.FIELD, "time,type,access,icons,usernick,appid", tcp.SERVER, CGI_BIN)), Hand: func(m *ice.Message, arg ...string) { + web.SPACE_LOGIN_CLOSE: {Hand: func(m *ice.Message, arg ...string) { + m.Cmd(mdb.PRUNES, m.Prefix(SCAN), "", mdb.HASH, m.OptionSimple(mdb.NAME)) + m.Cmd(mdb.PRUNES, m.Prefix(IDE), "", mdb.HASH, m.OptionSimple(mdb.NAME)) + }}, + }, aaa.RoleAction(aaa.LOGIN), gdb.EventsAction(web.SPACE_GRANT, web.SPACE_LOGIN_CLOSE), mdb.ImportantHashAction(mdb.SHORT, ACCESS, mdb.FIELD, "time,type,access,icons,usernick,appid", tcp.SERVER, CGI_BIN)), Hand: func(m *ice.Message, arg ...string) { mdb.HashSelect(m, arg...).PushAction(web.SSO, mdb.REMOVE).StatusTimeCount(mdb.ConfigSimple(m, ACCESS, APPID), web.SERVE, web.MergeLink(m, "/chat/wx/login/")) m.RewriteAppend(func(value, key string, index int) string { kit.If(key == cli.QRCODE, func() { value = ice.Render(m, ice.RENDER_QRCODE, value) }) diff --git a/misc/wx/ide.go b/misc/wx/ide.go index 6226af3b..a3407801 100644 --- a/misc/wx/ide.go +++ b/misc/wx/ide.go @@ -32,6 +32,9 @@ func _ide_args_qrcode(m *ice.Message, p string) []string { return []string{"--qr-format", nfs.IMAGE, "--qr-output", kit.Path(p)} } +const ( + PAGES_ACTION = "pages/action/action" +) const ( PROJECT = "project" PAGES = "pages" diff --git a/misc/wx/scan.go b/misc/wx/scan.go index c773c2e9..dac8d809 100644 --- a/misc/wx/scan.go +++ b/misc/wx/scan.go @@ -17,16 +17,15 @@ import ( const ( UNLIMIT = "unlimit" - EXPIRE_SECONDS = "expire_seconds" + IS_HYALINE = "is_hyaline" QR_STR_SCENE = "QR_STR_SCENE" QR_LIMIT_STR_SCENE = "QR_LIMIT_STR_SCENE" + EXPIRE_SECONDS = "expire_seconds" ) const SCAN = "scan" func init() { - const ( - IS_HYALINE = "is_hyaline" - ) + const () Index.MergeCommands(ice.Commands{ SCAN: {Name: "scan access hash auto", Help: "桌牌", Meta: kit.Merge(Meta(), kit.Dict(ice.CTX_TRANS, kit.Dict(html.VALUE, kit.Dict( QR_LIMIT_STR_SCENE, "永久码", QR_STR_SCENE, "临时码", mdb.VALID, "有效", mdb.EXPIRED, "失效", @@ -60,7 +59,7 @@ func init() { meta = path.Join("s", u.Host, scene) } msg := spidePost(m, WXACODE_UNLIMIT, web.SPIDE_DATA, kit.Format(kit.Dict( - "env_version", m.Option(ENV), "page", info.Append(PAGES), SCENE, meta, IS_HYALINE, m.Option(IS_HYALINE) == ice.TRUE, html.WIDTH, 360, + "env_version", m.Option(ENV), "page", info.Append(PAGES), SCENE, meta, IS_HYALINE, m.Option(IS_HYALINE) == ice.TRUE, html.WIDTH, 320, ))) switch kit.Select("", kit.Split(msg.Option(web.ContentType), "; "), 0) { case web.IMAGE_JPEG: