1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-26 01:24:05 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-07-11 20:08:39 +08:00
parent 38d74bc01f
commit 906183a522
3 changed files with 22 additions and 7 deletions

View File

@ -462,6 +462,10 @@ func init() {
AdminCmd(m, SPACE).Table(func(value ice.Maps) { AdminCmd(m, SPACE).Table(func(value ice.Maps) {
kit.If(kit.IsIn(value[mdb.TYPE], WORKER, SERVER), func() { m.Push(arg[0], value[mdb.NAME]) }) kit.If(kit.IsIn(value[mdb.TYPE], WORKER, SERVER), func() { m.Push(arg[0], value[mdb.NAME]) })
}) })
case SERVER:
AdminCmd(m, SPACE).Table(func(value ice.Maps) {
kit.If(kit.IsIn(value[mdb.TYPE], SERVER), func() { m.Push(arg[0], value[mdb.NAME]) })
})
case ORIGIN: case ORIGIN:
m.SetAppend().Push(arg[0], SpideOrigin(m, ice.DEV)) m.SetAppend().Push(arg[0], SpideOrigin(m, ice.DEV))
m.Copy(m.Cmd(SPIDE, kit.Dict(ice.MSG_FIELDS, CLIENT_ORIGIN)).CutTo(CLIENT_ORIGIN, arg[0]).Sort(arg[0])) m.Copy(m.Cmd(SPIDE, kit.Dict(ice.MSG_FIELDS, CLIENT_ORIGIN)).CutTo(CLIENT_ORIGIN, arg[0]).Sort(arg[0]))

View File

@ -123,20 +123,20 @@ func init() {
m.RenderResult(kit.Format(`<meta name="go-import" content="%s">`, kit.Format(`%s git %s`, strings.TrimSuffix(strings.Split(p, "://")[1], nfs.PT+GIT), p))) m.RenderResult(kit.Format(`<meta name="go-import" content="%s">`, kit.Format(`%s git %s`, strings.TrimSuffix(strings.Split(p, "://")[1], nfs.PT+GIT), p)))
return return
} }
switch repos, service := _service_param(m, arg...); service { repos, service := _service_param(m, arg...)
right := func(msg *ice.Message) bool {
return msg.Append(mdb.TYPE) == STATUS || (msg.Append(mdb.TYPE) == web.SERVER && msg.Append(mdb.TEXT) == path.Base(repos)) || (msg.Append(mdb.TYPE) == nfs.REPOS && msg.Append(mdb.TEXT) == path.Base(repos))
}
switch service {
case RECEIVE_PACK: case RECEIVE_PACK:
if !web.BasicCheck(m, "git server", func(msg *ice.Message) bool { if !web.BasicCheck(m, "git server", right) {
return msg.Append(mdb.TYPE) == STATUS || (msg.Append(mdb.TYPE) == web.SERVER && msg.Append(mdb.TEXT) == path.Base(repos))
}) {
return return
} else if !nfs.Exists(m, repos) { } else if !nfs.Exists(m, repos) {
m.Cmd(Prefix(SERVICE), mdb.CREATE, mdb.NAME, path.Base(repos)) m.Cmd(Prefix(SERVICE), mdb.CREATE, mdb.NAME, path.Base(repos))
} }
case UPLOAD_PACK: case UPLOAD_PACK:
if mdb.Conf(m, Prefix(SERVICE), kit.Keym(aaa.AUTH)) == aaa.PRIVATE { if mdb.Conf(m, Prefix(SERVICE), kit.Keym(aaa.AUTH)) == aaa.PRIVATE {
if !web.BasicCheck(m, "git server", func(msg *ice.Message) bool { if !web.BasicCheck(m, "git server", right) {
return msg.Append(mdb.TYPE) == STATUS || msg.Append(mdb.TYPE) == web.SERVER && msg.Append(mdb.TEXT) == path.Base(repos)
}) {
return return
} }
} }
@ -158,6 +158,15 @@ func init() {
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
m.Cmd(nfs.DIR, ice.USR_LOCAL_REPOS, func(value ice.Maps) { _repos_insert(m, value[nfs.PATH]) }) m.Cmd(nfs.DIR, ice.USR_LOCAL_REPOS, func(value ice.Maps) { _repos_insert(m, value[nfs.PATH]) })
}}, }},
aaa.AUTH: {Name: "auth scope=private,public", Hand: func(m *ice.Message, arg ...string) {
mdb.Config(m, aaa.AUTH, m.Option("scope"))
}},
"settoken": {Name: "settoken server*", Hand: func(m *ice.Message, arg ...string) {
token := m.Cmdx(web.TOKEN, mdb.CREATE, mdb.TYPE, nfs.REPOS, mdb.NAME, m.Option(web.SERVER), mdb.TEXT, m.Option(nfs.REPOS))
m.Cmd(web.SPACE, m.Option(web.SERVER), web.CODE_GIT_STATUS, web.DEV_CREATE_TOKEN, kit.Dict(
ice.MSG_USERNAME, m.Option(web.SERVER), web.TOKEN, token, web.ORIGIN, m.Option(ice.MSG_USERHOST),
))
}},
CLONE: {Name: "clone name*=demo origin", Hand: func(m *ice.Message, arg ...string) { CLONE: {Name: "clone name*=demo origin", Hand: func(m *ice.Message, arg ...string) {
git.PlainClone(_service_path(m, m.Option(mdb.NAME)), true, &git.CloneOptions{URL: m.Option(ORIGIN), Auth: _repos_auth(m, m.Option(ORIGIN))}) git.PlainClone(_service_path(m, m.Option(mdb.NAME)), true, &git.CloneOptions{URL: m.Option(ORIGIN), Auth: _repos_auth(m, m.Option(ORIGIN))})
_repos_insert(m, _service_path(m, m.Option(mdb.NAME))) _repos_insert(m, _service_path(m, m.Option(mdb.NAME)))
@ -195,6 +204,7 @@ func init() {
}).Sort(REPOS) }).Sort(REPOS)
kit.If(!m.IsCliUA(), func() { m.Cmdy(web.CODE_PUBLISH, ice.CONTEXTS, ice.DEV) }) kit.If(!m.IsCliUA(), func() { m.Cmdy(web.CODE_PUBLISH, ice.CONTEXTS, ice.DEV) })
kit.If(mdb.Config(m, aaa.AUTH) == aaa.PRIVATE, func() { m.StatusTimeCount(aaa.AUTH, aaa.PRIVATE) }) kit.If(mdb.Config(m, aaa.AUTH) == aaa.PRIVATE, func() { m.StatusTimeCount(aaa.AUTH, aaa.PRIVATE) })
m.PushAction("settoken", mdb.REMOVE).Action(mdb.CREATE, aaa.AUTH)
} else if repos := _repos_open(m, arg[0]); len(arg) == 1 { } else if repos := _repos_open(m, arg[0]); len(arg) == 1 {
defer m.PushScript(kit.Format("git clone %s", _service_link(m, arg[0]))) defer m.PushScript(kit.Format("git clone %s", _service_link(m, arg[0])))
_repos_branch(m, repos) _repos_branch(m, repos)

View File

@ -68,6 +68,7 @@ func init() {
msg := mdb.HashSelect(m.Spawn(), m.Option(ACCESS)) msg := mdb.HashSelect(m.Spawn(), m.Option(ACCESS))
if msg.Append(TOKENS) == "" || m.Time() > msg.Append(EXPIRES) { if msg.Append(TOKENS) == "" || m.Time() > msg.Append(EXPIRES) {
res := m.Cmd(web.SPIDE, WX, http.MethodGet, TOKEN_CREDENTIAL, msg.AppendSimple(APPID, SECRET)) res := m.Cmd(web.SPIDE, WX, http.MethodGet, TOKEN_CREDENTIAL, msg.AppendSimple(APPID, SECRET))
m.Debug("what %v", res.FormatMeta())
mdb.HashModify(m, m.OptionSimple(ACCESS), EXPIRES, m.Time(kit.Format("%vs", res.Append(oauth.EXPIRES_IN))), TOKENS, res.Append(oauth.ACCESS_TOKEN)) mdb.HashModify(m, m.OptionSimple(ACCESS), EXPIRES, m.Time(kit.Format("%vs", res.Append(oauth.EXPIRES_IN))), TOKENS, res.Append(oauth.ACCESS_TOKEN))
msg = mdb.HashSelect(m.Spawn(), m.Option(ACCESS)) msg = mdb.HashSelect(m.Spawn(), m.Option(ACCESS))
} }