From 26fe9b47f93be131c4b6f4112ca30e28758cbc95 Mon Sep 17 00:00:00 2001 From: shy Date: Tue, 26 Sep 2023 10:06:41 +0800 Subject: [PATCH] opt sso --- base/mdb/mdb.go | 18 +++++++++--------- core/chat/header.go | 24 +++++++++++++++--------- core/chat/oauth/client.go | 3 +-- 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/base/mdb/mdb.go b/base/mdb/mdb.go index 51dc57d6..92b0354f 100644 --- a/base/mdb/mdb.go +++ b/base/mdb/mdb.go @@ -68,11 +68,12 @@ const ( DATA = kit.MDB_DATA VIEW = kit.MDB_VIEW - LINK = kit.MDB_LINK FILE = kit.MDB_FILE + LINK = kit.MDB_LINK SCAN = kit.MDB_SCAN SHOW = kit.MDB_SHOW HELP = kit.MDB_HELP + ICON = kit.MDB_ICON INDEX = kit.MDB_INDEX VALUE = kit.MDB_VALUE @@ -90,8 +91,8 @@ const ( LEAST = kit.MDB_LEAST STORE = kit.MDB_STORE FSIZE = kit.MDB_FSIZE - TOOLS = "tools" + TOOLS = "tools" SOURCE = "_source" TARGET = "_target" IMPORTANT = "important" @@ -107,25 +108,24 @@ const ( PRUNES = "prunes" EXPORT = "export" IMPORT = "import" - PRUNE = "prune" - RENAME = "rename" DETAIL = "detail" FIELDS = "fields" PARAMS = "params" + OFFEND = "offend" + OFFSET = "offset" + RANDOM = "random" + SUBKEY = "subkey" ACTION = "action" UPLOAD = "upload" RECENT = "recent" REPEAT = "repeat" REVERT = "revert" - RANDOM = "random" - OFFEND = "offend" - OFFSET = "offset" - SUBKEY = "subkey" + RENAME = "rename" ORDER = "order" + PRUNE = "prune" - ICON = "icon" PAGE = "page" NEXT = "next" PREV = "prev" diff --git a/core/chat/header.go b/core/chat/header.go index 01e845c5..b6fbb19e 100644 --- a/core/chat/header.go +++ b/core/chat/header.go @@ -50,12 +50,7 @@ func _header_check(m *ice.Message, arg ...string) bool { } }) } - if m.Option(ice.MSG_USERNAME) != "" { - return true - } else if ctx.OptionFromConfig(m, SSO) == "" { - m.Option(SSO, kit.Format(kit.Dict("serve.icon", nfs.USR_ICONS_ICEBERGS, "serve.url", GetSSO(m)))) - } - return false + return m.Option(ice.MSG_USERNAME) != "" } const ( @@ -70,7 +65,12 @@ const HEADER = "header" func init() { Index.MergeCommands(ice.Commands{ HEADER: {Actions: ice.MergeActions(ice.Actions{ - ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { aaa.White(m, HEADER) }}, + ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { + aaa.White(m, HEADER) + aaa.Black(m, kit.Keys(HEADER, ctx.ACTION, mdb.CREATE)) + aaa.Black(m, kit.Keys(HEADER, ctx.ACTION, mdb.REMOVE)) + }}, + web.SHARE: {Hand: _header_share}, aaa.LOGIN: {Hand: func(m *ice.Message, arg ...string) {}}, aaa.LOGOUT: {Hand: aaa.SessLogout}, aaa.PASSWORD: {Hand: _header_users}, @@ -92,14 +92,20 @@ func init() { m.Options(ice.MSG_USERWEB, kit.MergeURL(m.Option(ice.MSG_USERWEB), web.SHARE, m.Cmdx(web.SHARE, mdb.CREATE, mdb.TYPE, web.LOGIN))) m.Cmdy(aaa.EMAIL, aaa.SEND, arg, aaa.CONTENT, nfs.Template(m, "email.html")) }}, - web.SHARE: {Hand: _header_share}, - }, web.ApiAction()), Hand: func(m *ice.Message, arg ...string) { + mdb.CREATE: {Name: "create name icon url", Hand: func(m *ice.Message, arg ...string) { mdb.HashCreate(m, m.OptionSimple()) }}, + mdb.REMOVE: {Hand: func(m *ice.Message, arg ...string) { mdb.HashRemove(m, m.OptionSimple(mdb.NAME)) }}, + }, web.ApiAction(), ctx.ConfAction(mdb.SHORT, mdb.NAME, mdb.FIELD, "time,name,icon,url")), Hand: func(m *ice.Message, arg ...string) { m.Option("language.list", m.Cmd(nfs.DIR, nfs.TemplatePath(m, aaa.LANGUAGE)+nfs.PS, nfs.FILE).Appendv(nfs.FILE)) m.Option("theme.list", m.Cmd(nfs.DIR, nfs.TemplatePath(m, aaa.THEME)+nfs.PS, nfs.FILE).Appendv(nfs.FILE)) m.Option(nfs.REPOS, m.Cmdv(web.SPIDE, nfs.REPOS, web.CLIENT_URL)) m.Option(ICONS, mdb.Conf(m, ICONS, kit.Keym(nfs.PATH))) m.Option(MENUS, mdb.Config(m, MENUS)) m.Echo(mdb.Config(m, TITLE)) + if mdb.HashSelect(m); m.Length() == 0 { + kit.If(GetSSO(m), func(p string) { + m.Push(mdb.TIME, m.Time()).Push(mdb.NAME, web.SERVE).Push(mdb.ICON, nfs.USR_ICONS_ICEBERGS).Push(web.URL, p) + }) + } if gdb.Event(m, HEADER_AGENT); !_header_check(m, arg...) { return } diff --git a/core/chat/oauth/client.go b/core/chat/oauth/client.go index ec38d012..f30b579b 100644 --- a/core/chat/oauth/client.go +++ b/core/chat/oauth/client.go @@ -81,8 +81,7 @@ func (s Client) Inputs(m *ice.Message, arg ...string) { } } func (s Client) Sso(m *ice.Message, arg ...string) { - mdb.Conf(m, web.CHAT_HEADER, kit.Keym(web.SSO, m.Option(mdb.NAME), web.URL), kit.MergeURL2(m.Option(web.DOMAIN), m.Option(OAUTH_URL), m.OptionSimple(CLIENT_ID), REDIRECT_URI, s.RedirectURI(m), RESPONSE_TYPE, CODE, STATE, m.Option(mdb.HASH))) - mdb.Conf(m, web.CHAT_HEADER, kit.Keym(web.SSO, m.Option(mdb.NAME), mdb.ICON), m.Option(mdb.ICON)) + m.Cmd(web.CHAT_HEADER, mdb.CREATE, m.Option(mdb.NAME), m.Option(mdb.ICON), kit.MergeURL2(m.Option(web.DOMAIN), m.Option(OAUTH_URL), m.OptionSimple(CLIENT_ID), REDIRECT_URI, s.RedirectURI(m), RESPONSE_TYPE, CODE, STATE, m.Option(mdb.HASH))) } func (s Client) Auth(m *ice.Message, arg ...string) { m.Options(REDIRECT_URI, s.RedirectURI(m), RESPONSE_TYPE, CODE, STATE, m.Option(mdb.HASH))