From e1bb4568d9796e30dec1a767049bcd1044cd083d Mon Sep 17 00:00:00 2001 From: shy Date: Mon, 4 Dec 2023 13:15:19 +0800 Subject: [PATCH] opt header --- base/mdb/mdb.go | 4 +++- base/nfs/dir.go | 3 +++ base/web/render.go | 43 ++++++++++++++++++++++--------------------- core/chat/header.go | 39 ++++++++++++++++++--------------------- 4 files changed, 46 insertions(+), 43 deletions(-) diff --git a/base/mdb/mdb.go b/base/mdb/mdb.go index 7cbbaca8..a4e87b06 100644 --- a/base/mdb/mdb.go +++ b/base/mdb/mdb.go @@ -98,8 +98,10 @@ const ( SOURCE = "_source" TARGET = "_target" IMPORTANT = "important" - EXPIRED = "expired" VALID = "valid" + EXPIRED = "expired" + DISABLE = "disable" + ENABLE = "enable" ) const ( INPUTS = "inputs" diff --git a/base/nfs/dir.go b/base/nfs/dir.go index 680594f3..3dca6706 100644 --- a/base/nfs/dir.go +++ b/base/nfs/dir.go @@ -155,7 +155,10 @@ const ( PATHNAME = "pathname" FILENAME = "filename" + USR_ICONS_AVATAR = "usr/icons/avatar.jpg" + USR_ICONS_CONTEXTS = "usr/icons/contexts.png" USR_ICONS_ICEBERGS = "usr/icons/icebergs.jpg" + USR_ICONS_VOLCANOS = "usr/icons/valcanos.jpg" TYPE_ALL = "all" TYPE_BIN = "bin" diff --git a/base/web/render.go b/base/web/render.go index f8daf6cb..32fcd5d7 100644 --- a/base/web/render.go +++ b/base/web/render.go @@ -166,25 +166,26 @@ const ( VOLCANOS = "/volcanos/" INTSHELL = "/intshell/" - CODE_GIT_SERVICE = "web.code.git.service" - CODE_GIT_SEARCH = "web.code.git.search" - CODE_GIT_STATUS = "web.code.git.status" - CODE_GIT_REPOS = "web.code.git.repos" - CODE_COMPILE = "web.code.compile" - CODE_UPGRADE = "web.code.upgrade" - CODE_PUBLISH = "web.code.publish" - CODE_VIMER = "web.code.vimer" - CODE_INNER = "web.code.inner" - CODE_XTERM = "web.code.xterm" - WIKI_FEEL = "web.wiki.feel" - WIKI_DRAW = "web.wiki.draw" - WIKI_WORD = "web.wiki.word" - WIKI_PORTAL = "web.wiki.portal" - CHAT_PORTAL = "web.chat.portal" - CHAT_HEADER = "web.chat.header" - CHAT_IFRAME = "web.chat.iframe" - CHAT_FAVOR = "web.chat.favor" - CHAT_GRANT = "web.chat.grant" - CHAT_FLOWS = "web.chat.flows" - TEAM_PLAN = "web.team.plan" + CODE_GIT_SERVICE = "web.code.git.service" + CODE_GIT_SEARCH = "web.code.git.search" + CODE_GIT_STATUS = "web.code.git.status" + CODE_GIT_REPOS = "web.code.git.repos" + CODE_COMPILE = "web.code.compile" + CODE_UPGRADE = "web.code.upgrade" + CODE_PUBLISH = "web.code.publish" + CODE_VIMER = "web.code.vimer" + CODE_INNER = "web.code.inner" + CODE_XTERM = "web.code.xterm" + WIKI_FEEL = "web.wiki.feel" + WIKI_DRAW = "web.wiki.draw" + WIKI_WORD = "web.wiki.word" + WIKI_PORTAL = "web.wiki.portal" + CHAT_OAUTH_CLIENT = "web.chat.oauth.client" + CHAT_PORTAL = "web.chat.portal" + CHAT_HEADER = "web.chat.header" + CHAT_IFRAME = "web.chat.iframe" + CHAT_FAVOR = "web.chat.favor" + CHAT_FLOWS = "web.chat.flows" + CHAT_GRANT = "web.chat.grant" + TEAM_PLAN = "web.team.plan" ) diff --git a/core/chat/header.go b/core/chat/header.go index 662425a8..24b63a5e 100644 --- a/core/chat/header.go +++ b/core/chat/header.go @@ -28,6 +28,8 @@ func _header_users(m *ice.Message, arg ...string) { func _header_share(m *ice.Message, arg ...string) { if m.Warn(m.Option(ice.MSG_USERNAME) == "", ice.ErrNotLogin, "没有登录") { return + } else if m.Warn(m.Option(web.SHARE) != "", ice.ErrNotRight, "没有权限") { + return } else if kit.For(arg, func(k, v string) { m.Option(k, v) }); m.Option(mdb.LINK) == "" { m.Cmdy(web.SHARE, mdb.CREATE, mdb.TYPE, web.LOGIN, arg) } else { @@ -72,18 +74,12 @@ func init() { aaa.Black(m, kit.Keys(HEADER, ctx.ACTION, mdb.CREATE)) aaa.Black(m, kit.Keys(HEADER, ctx.ACTION, mdb.REMOVE)) aaa.Black(m, kit.Keys(HEADER, ctx.ACTION, mdb.MODIFY)) - kit.If(mdb.HashSelect(m.Spawn()).Length() == 0, func() { - m.Cmd("", mdb.CREATE, mdb.TYPE, cli.QRCODE, mdb.NAME, "扫码登录", mdb.ORDER, "1") - }) }}, web.SHARE: {Hand: _header_share}, - aaa.LOGIN: {Hand: func(m *ice.Message, arg ...string) {}}, - aaa.LOGOUT: {Hand: aaa.SessLogout}, - aaa.PASSWORD: {Hand: _header_users}, - aaa.USERNICK: {Hand: _header_users}, aaa.LANGUAGE: {Hand: _header_users}, - aaa.BACKGROUND: {Hand: _header_users}, + aaa.USERNICK: {Hand: _header_users}, aaa.AVATAR: {Hand: _header_users}, + aaa.BACKGROUND: {Hand: _header_users}, aaa.THEME: {Hand: func(m *ice.Message, arg ...string) { if tcp.IsLocalHost(m, m.Option(ice.MSG_USERIP)) { m.Cmd(cli.SYSTEM, "osascript", "-e", `tell app "System Events" to tell appearance preferences to set dark mode to `+ @@ -99,48 +95,49 @@ 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")) }}, + aaa.LOGOUT: {Hand: aaa.SessLogout}, + mdb.CREATE: {Name: "create type*=oauth,plugin,qrcode name* icons link order space index args", 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)) }}, + mdb.MODIFY: {Hand: func(m *ice.Message, arg ...string) { mdb.HashModify(m, m.OptionSimple(mdb.NAME), arg) }}, ice.DEMO: {Help: "体验", Hand: func(m *ice.Message, arg ...string) { if kit.IsIn(m.Option(ice.MSG_USERROLE), aaa.TECH, aaa.ROOT) { m.Cmd("", mdb.CREATE, mdb.TYPE, mdb.PLUGIN, mdb.NAME, "免登录体验", mdb.ORDER, "2", ctx.INDEX, HEADER, ctx.ARGS, ice.DEMO) mdb.Config(m, ice.DEMO, ice.TRUE) - return - } - if mdb.Config(m, ice.DEMO) == ice.TRUE { + } else if mdb.Config(m, ice.DEMO) == ice.TRUE { web.RenderCookie(m, aaa.SessCreate(m, ice.Info.Username)) m.Echo("login success") } else { - m.Echo("hello world") + m.Echo("login failure") } }}, - mdb.CREATE: {Name: "create type*=oauth,plugin,qrcode name* icons link order space index args", 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)) }}, - mdb.MODIFY: {Hand: func(m *ice.Message, arg ...string) { mdb.HashModify(m, m.OptionSimple(mdb.NAME), arg) }}, }, web.ApiAction(), mdb.ImportantHashAction(mdb.SHORT, mdb.NAME, mdb.FIELD, "time,name,icons,type,link,order,space,index,args")), 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("icon.lib", mdb.Conf(m, ICON, kit.Keym(nfs.PATH))) m.Option("diy", mdb.Config(m, "diy")) - m.Option(MENUS, mdb.Config(m, MENUS)) m.Echo(mdb.Config(m, TITLE)) mdb.HashSelect(m, arg...).Sort(mdb.ORDER, ice.INT) - m.Table(func(value ice.Maps) { m.Push(mdb.STATUS, kit.Select("enable", "disable", value[mdb.ORDER] == "")) }) - kit.If(m.Option(ice.MSG_USERROLE) == aaa.TECH, func() { m.Action(mdb.CREATE, ice.DEMO) }) + m.Table(func(value ice.Maps) { m.Push(mdb.STATUS, kit.Select(mdb.ENABLE, mdb.DISABLE, value[mdb.ORDER] == "")) }) + kit.If(m.Length() == 0, func() { + m.Push(mdb.TIME, m.Time()).Push(mdb.NAME, "扫码登录").Push(mdb.ICONS, nfs.USR_ICONS_VOLCANOS).Push(mdb.TYPE, cli.QRCODE).Push(web.LINK, "").Push(mdb.ORDER, "1") + }) kit.If(GetSSO(m), func(p string) { m.Push(mdb.TIME, m.Time()).Push(mdb.NAME, web.SERVE).Push(mdb.ICONS, nfs.USR_ICONS_ICEBERGS).Push(mdb.TYPE, "oauth").Push(web.LINK, p) }) m.StatusTimeCount(kit.Dict(mdb.ConfigSimple(m, ice.DEMO))) + kit.If(kit.IsIn(m.Option(ice.MSG_USERROLE), aaa.TECH, aaa.ROOT), func() { m.Action(mdb.CREATE, ice.DEMO) }) if gdb.Event(m, HEADER_AGENT); !_header_check(m, arg...) { return } msg := m.Cmd(aaa.USER, m.Option(ice.MSG_USERNAME)) - kit.For([]string{aaa.USERNICK, aaa.LANGUAGE, aaa.EMAIL}, func(k string) { m.Option(k, msg.Append(k)) }) + kit.For([]string{aaa.LANGUAGE, aaa.USERNICK, aaa.EMAIL}, func(k string) { m.Option(k, msg.Append(k)) }) kit.For([]string{aaa.AVATAR, aaa.BACKGROUND}, func(k string) { m.Option(k, web.RequireFile(m, msg.Append(k))) }) kit.If(m.Option(aaa.LANGUAGE) == "", func() { m.Option(aaa.LANGUAGE, kit.Select("", "zh-cn", strings.Contains(m.Option(ice.MSG_USERUA), "zh_CN"))) - kit.If(m.Option(aaa.LANGUAGE) == "", func() { m.Option(aaa.LANGUAGE, kit.Select("", kit.Split(m.R.Header.Get(web.AcceptLanguage), ",;"), 0)) }) - kit.If(m.Option(aaa.LANGUAGE) == "", func() { m.Option(aaa.LANGUAGE, ice.Info.Lang) }) }) + kit.If(m.Option(aaa.LANGUAGE) == "", func() { m.Option(aaa.LANGUAGE, kit.Select("", kit.Split(m.R.Header.Get(web.AcceptLanguage), ",;"), 0)) }) + kit.If(m.Option(aaa.LANGUAGE) == "", func() { m.Option(aaa.LANGUAGE, ice.Info.Lang) }) }}, }) }