From 37b16d89d15c4d08f26fe2636153f00226761f82 Mon Sep 17 00:00:00 2001 From: shy Date: Tue, 15 Mar 2022 14:17:39 +0800 Subject: [PATCH] opt some --- base/web/serve.go | 8 ++++++++ core/chat/header.go | 8 +++++--- core/chat/website.go | 4 ++-- misc/lark/sso.go | 47 ++++++++++++++++++++++---------------------- 4 files changed, 38 insertions(+), 29 deletions(-) diff --git a/base/web/serve.go b/base/web/serve.go index 5690a077..d59c4d79 100644 --- a/base/web/serve.go +++ b/base/web/serve.go @@ -275,7 +275,15 @@ func init() { cli.NodeInfo(m, WORKER, ice.Info.PathName) AddRewrite(func(w http.ResponseWriter, r *http.Request) bool { if r.Method == SPIDE_GET && r.URL.Path == ice.PS { + msg := m.Spawn(SERVE, w, r) + if share := r.URL.Query().Get("share"); share != "" { + switch msg := msg.Cmd(SHARE, share); msg.Append(mdb.TYPE) { + case "login": + RenderCookie(msg, aaa.SessCreate(msg, msg.Append(aaa.USERNAME))) + } + } + repos := kit.Select(ice.INTSHELL, ice.VOLCANOS, strings.Contains(r.Header.Get("User-Agent"), "Mozilla/5.0")) Render(msg, ice.RENDER_DOWNLOAD, path.Join(msg.Config(kit.Keys(repos, nfs.PATH)), msg.Config(kit.Keys(repos, INDEX)))) return true // 网站主页 diff --git a/core/chat/header.go b/core/chat/header.go index d79bcfe1..97e53d2b 100644 --- a/core/chat/header.go +++ b/core/chat/header.go @@ -20,10 +20,12 @@ func _header_agent(m *ice.Message, arg ...string) { } } func _header_check(m *ice.Message, arg ...string) { - if m.Option(ice.MSG_USERNAME) == "" { - m.Option(web.LOGIN, m.Config(web.LOGIN)) - m.Option(web.SSO, m.Conf(web.SERVE, kit.Keym(web.SSO))) + if m.Option(ice.MSG_USERNAME) != "" { + return } + + m.Option(web.LOGIN, m.Config(web.LOGIN)) + m.Option(web.SSO, m.Conf(web.SERVE, kit.Keym(web.SSO))) if m.Option("login.dev", m.Cmd(web.SPACE, ice.DEV).Append(mdb.TEXT)) == "" { m.Option("login.dev", m.Cmd(web.SPACE, ice.SHY).Append(mdb.TEXT)) } diff --git a/core/chat/website.go b/core/chat/website.go index 171053e9..2427a4c9 100644 --- a/core/chat/website.go +++ b/core/chat/website.go @@ -36,9 +36,7 @@ func _website_parse(m *ice.Message, text string, args ...string) (map[string]int ), kit.Dict(), kit.Dict() prefix := "" - m.Debug("what %v", prefix) m.Cmd(lex.SPLIT, "", mdb.KEY, mdb.NAME, func(deep int, ls []string, meta map[string]interface{}) []string { - m.Debug("what %v", ls) data := kit.Dict() switch display := ice.DisplayRequire(1, ls[0])[ctx.DISPLAY]; kit.Ext(ls[0]) { case nfs.JS: @@ -259,6 +257,7 @@ func init() { var _website_template = ` + volcanos @@ -274,6 +273,7 @@ var _website_template = ` var _website_template2 = ` + volcanos diff --git a/misc/lark/sso.go b/misc/lark/sso.go index 176e3fb4..90d363ee 100644 --- a/misc/lark/sso.go +++ b/misc/lark/sso.go @@ -21,33 +21,32 @@ func init() { appid := m.Cmd(APP).Append(APPID) home := m.MergeURL2("/chat/lark/sso") - if m.Option(cli.CODE) != "" { // 登录成功 - msg := m.Cmd(web.SPIDE, LARK, "/open-apis/authen/v1/access_token", "grant_type", "authorization_code", - cli.CODE, m.Option(cli.CODE), "app_access_token", m.Cmdx(APP, TOKEN, appid)) - - // 更新用户 - m.Option(aaa.USERNAME, msg.Append("data.open_id")) - msg = m.Cmd(EMPLOYEE, appid, m.Option(aaa.USERNAME)) - userrole := kit.Select(aaa.VOID, aaa.TECH, msg.Append("is_tenant_manager") == ice.TRUE) - m.Cmd(aaa.USER, mdb.CREATE, userrole, m.Option(aaa.USERNAME)) - m.Cmd(aaa.USER, mdb.MODIFY, aaa.USERROLE, userrole, - aaa.USERNICK, msg.Append(mdb.NAME), aaa.USERZONE, LARK, - aaa.AVATAR, msg.Append("avatar_url"), aaa.GENDER, kit.Select("女", "男", msg.Append(aaa.GENDER) == "1"), - msg.AppendSimple(aaa.MOBILE, aaa.EMAIL, aaa.CITY, aaa.COUNTRY), - ) - - // 创建会话 - web.RenderCookie(m, aaa.SessCreate(m, m.Option(aaa.USERNAME)), web.CookieName(m.Option(cli.BACK))) - m.RenderRedirect(kit.Select(home, m.Option(cli.BACK))) + if m.Option(cli.CODE) == "" { // 登录页面 + if back := m.R.Header.Get("Referer"); back != "" { + home = kit.MergeURL(home, cli.BACK, back) + } + m.RenderRedirect(kit.MergeURL2(m.Cmd(web.SPIDE, LARK).Append("client.url"), "/open-apis/authen/v1/index"), + "redirect_uri", home, APP_ID, m.Cmd(APP).Append(APPID)) return } - if back := m.R.Header.Get("Referer"); back != "" { - home = kit.MergeURL(home, cli.BACK, back) - } - // 登录页面 - m.RenderRedirect(kit.MergeURL2(m.Cmd(web.SPIDE, LARK).Append("client.url"), "/open-apis/authen/v1/index"), - "redirect_uri", home, APP_ID, m.Cmd(APP).Append(APPID)) + msg := m.Cmd(web.SPIDE, LARK, "/open-apis/authen/v1/access_token", "grant_type", "authorization_code", + cli.CODE, m.Option(cli.CODE), "app_access_token", m.Cmdx(APP, TOKEN, appid)) + + // 更新用户 + m.Option(aaa.USERNAME, msg.Append("data.open_id")) + msg = m.Cmd(EMPLOYEE, appid, m.Option(aaa.USERNAME)) + userrole := kit.Select(aaa.VOID, aaa.TECH, msg.Append("is_tenant_manager") == ice.TRUE) + m.Cmd(aaa.USER, mdb.CREATE, userrole, m.Option(aaa.USERNAME)) + m.Cmd(aaa.USER, mdb.MODIFY, aaa.USERROLE, userrole, + aaa.USERNICK, msg.Append(mdb.NAME), aaa.USERZONE, LARK, + aaa.AVATAR, msg.Append("avatar_url"), aaa.GENDER, kit.Select("女", "男", msg.Append(aaa.GENDER) == "1"), + msg.AppendSimple(aaa.MOBILE, aaa.EMAIL, aaa.CITY, aaa.COUNTRY), + ) + + // 创建会话 + // web.RenderCookie(m, aaa.SessCreate(m, m.Option(aaa.USERNAME)), web.CookieName(m.Option(cli.BACK))) + m.RenderRedirect(kit.MergeURL(kit.Select(home, m.Option(cli.BACK)), "sessid", aaa.SessCreate(m, m.Option(aaa.USERNAME)))) }}, }}) }