From c02fcef01b24e3b40ebf87f4172a6484761ea9c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=80=9D?= Date: Wed, 27 May 2026 10:31:43 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E8=B6=85=E7=AE=97=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E6=8E=A8=E5=B9=BF=E8=BF=90=E8=90=A5=E9=9C=80=E6=B1=82=EF=BC=9A?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E5=90=8E=E5=A2=9E=E5=8A=A0gopage=E3=80=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B6=85=E7=AE=97=E5=8A=A0=E5=85=A5=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E9=80=BB=E8=BE=91=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Information/Component/publicBanner.jsx | 4 ++-- src/forge/Information/api.js | 3 ++- src/modules/login/LoginDialog.js | 3 ++- src/modules/loginRegister/Login.jsx | 12 +++++++++--- src/modules/loginRegister/Register.jsx | 14 ++++++++++++-- 5 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/forge/Information/Component/publicBanner.jsx b/src/forge/Information/Component/publicBanner.jsx index dd22273ba..e21b429ef 100644 --- a/src/forge/Information/Component/publicBanner.jsx +++ b/src/forge/Information/Component/publicBanner.jsx @@ -90,7 +90,7 @@ function PublicBanner(props) { function apply() { if (checkIfLogin() === false) { - showLoginDialog() + showLoginDialog(`/zone/${deptId}`) return false; } else if (memberStatus === memberStatusEnum.applying) { message.info("您已提交申请,请耐心等待管理员审核!") @@ -105,7 +105,7 @@ function PublicBanner(props) { function toLessonsFunc(){ if (checkIfLogin() === false) { - showLoginDialog() + showLoginDialog(`/zone/${deptId}/lessons`) return false; } else{ window.location.href = `/zone/${deptId}/lessons`; diff --git a/src/forge/Information/api.js b/src/forge/Information/api.js index 132732774..fc794269d 100644 --- a/src/forge/Information/api.js +++ b/src/forge/Information/api.js @@ -29,10 +29,11 @@ export function getCheckZoneRole(id) { }); } -export function getCurrentRole(id) { +export function getCurrentRole(id, deptId) { return fetch({ url: `/zone/zoneFront/${id}/checkCurrentRole`, method: 'get', + headers: {'Dept-Id': deptId} }); } diff --git a/src/modules/login/LoginDialog.js b/src/modules/login/LoginDialog.js index 08c0f1286..efa10c93b 100644 --- a/src/modules/login/LoginDialog.js +++ b/src/modules/login/LoginDialog.js @@ -431,6 +431,7 @@ class LoginDialog extends Component { render() { let { login, isGoing, isGoingValue, disabled , Phonenumberisnotco , dialogBox, isRender, weixinlogin, settings } = this.state; + const {gopage} = this.props if (isRender === undefined) { isRender = false @@ -536,7 +537,7 @@ class LoginDialog extends Component { 找回密码 - 注册 + 注册

diff --git a/src/modules/loginRegister/Login.jsx b/src/modules/loginRegister/Login.jsx index 711bab83e..52a683414 100644 --- a/src/modules/loginRegister/Login.jsx +++ b/src/modules/loginRegister/Login.jsx @@ -11,6 +11,7 @@ import OtherLogin from "./component/otherLogin"; import cookie from 'react-cookies'; import './LoginRegisterPage.scss'; import { Encrypt } from "../../common/Env"; +import { getCurrentRole } from "../../forge/Information/api"; function Login(props){ const [message,setMessage] = useState(); @@ -55,8 +56,13 @@ function Login(props){ const searchParams = new URLSearchParams(search.substring(1)); const goPage = searchParams.get("go_page"); - //意见反馈 - window.location.href = goPage ? goPage : `/${response.data.login}` + if(["https://gitlink.educoder.net/paths/z8ag3qtm", "https://gitlink.educoder.net/paths/fyka9x35"].includes(goPage)){ + getCurrentRole(34, 375).finally(()=>{ + window.location.href = goPage ? goPage : `/${response.data.login}` + }) + }else{ + window.location.href = goPage ? goPage : `/${response.data.login}` + } } }).catch((error) => { console.log('error',error); @@ -81,7 +87,7 @@ function Login(props){
欢迎登录 GitLink - 没有账号?去注册 + 没有账号?去注册

{message}

diff --git a/src/modules/loginRegister/Register.jsx b/src/modules/loginRegister/Register.jsx index 1cda2145c..9d3ceaee1 100644 --- a/src/modules/loginRegister/Register.jsx +++ b/src/modules/loginRegister/Register.jsx @@ -6,9 +6,11 @@ import { setmiyah } from 'educoder'; import './LoginRegisterPage.scss'; import OtherLogin from "./component/otherLogin"; import { Encrypt } from "../../common/Env"; +import { getCurrentRole } from "../../forge/Information/api"; function Register(props){ const {form, mygetHelmetapi,location} = props; + const {search} = location; const {getFieldDecorator, setFieldsValue } = form; //用户输入的符合规则的邮箱(用于获取验证码) const [emailStr, setEmailStr] = useState(undefined); @@ -59,7 +61,15 @@ function Register(props){ setEmailStr(values.email); }else if(response.data && response.data.status === 0){ //注册成功,页面跳转即可,注册后登录流程forge处理了 - window.location.href = "/"+values.register_username.trim(); + const searchParams = new URLSearchParams(search.substring(1)); + const goPage = searchParams.get("go_page"); + if(["https://gitlink.educoder.net/paths/z8ag3qtm", "https://gitlink.educoder.net/paths/fyka9x35"].includes(goPage)){ + getCurrentRole(34, 375).finally(()=>{ + window.location.href = goPage ? goPage : `/${response.data.login}` + }) + }else{ + window.location.href = goPage ? goPage : `/${response.data.login}` + } } else { setEmailStr(values.email); setMess(response.data.message); @@ -229,7 +239,7 @@ function Register(props){
欢迎注册 GitLink - 已有账号,立即登录 + 已有账号,立即登录
{changeRegisterType(0)}}>手机号注册 From 84a36148184abb63302c3c6b32f1bb600b7d11d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=80=9D?= Date: Wed, 27 May 2026 11:42:16 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E8=B6=85=E7=AE=97=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E6=89=A9=E5=A4=A7=E5=88=B0=E5=9F=9F=E5=90=8D?= =?UTF-8?q?=EF=BC=8C=E4=B8=94=E5=AF=B9=E5=9C=B0=E5=9D=80=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E8=A7=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/loginRegister/Login.jsx | 6 +++--- src/modules/loginRegister/Register.jsx | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/modules/loginRegister/Login.jsx b/src/modules/loginRegister/Login.jsx index 52a683414..adde3ff71 100644 --- a/src/modules/loginRegister/Login.jsx +++ b/src/modules/loginRegister/Login.jsx @@ -56,12 +56,12 @@ function Login(props){ const searchParams = new URLSearchParams(search.substring(1)); const goPage = searchParams.get("go_page"); - if(["https://gitlink.educoder.net/paths/z8ag3qtm", "https://gitlink.educoder.net/paths/fyka9x35"].includes(goPage)){ + if(goPage.includes("gitlink.educoder.net")){ getCurrentRole(34, 375).finally(()=>{ - window.location.href = goPage ? goPage : `/${response.data.login}` + window.location.href = goPage ? decodeURIComponent(goPage) : `/${response.data.login}` }) }else{ - window.location.href = goPage ? goPage : `/${response.data.login}` + window.location.href = goPage ? decodeURIComponent(goPage) : `/${response.data.login}` } } }).catch((error) => { diff --git a/src/modules/loginRegister/Register.jsx b/src/modules/loginRegister/Register.jsx index 9d3ceaee1..03eef6c2b 100644 --- a/src/modules/loginRegister/Register.jsx +++ b/src/modules/loginRegister/Register.jsx @@ -63,12 +63,12 @@ function Register(props){ //注册成功,页面跳转即可,注册后登录流程forge处理了 const searchParams = new URLSearchParams(search.substring(1)); const goPage = searchParams.get("go_page"); - if(["https://gitlink.educoder.net/paths/z8ag3qtm", "https://gitlink.educoder.net/paths/fyka9x35"].includes(goPage)){ + if(goPage.includes("gitlink.educoder.net")){ getCurrentRole(34, 375).finally(()=>{ - window.location.href = goPage ? goPage : `/${response.data.login}` + window.location.href = goPage ? decodeURIComponent(goPage) : `/${response.data.login}` }) }else{ - window.location.href = goPage ? goPage : `/${response.data.login}` + window.location.href = goPage ? decodeURIComponent(goPage) : `/${response.data.login}` } } else { setEmailStr(values.email); From 0e96be8cd430c6541a95234b57244a5573407ba4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=80=9D?= Date: Wed, 27 May 2026 11:42:34 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=9A=82=E6=97=B6=E5=B1=8F=E8=94=BD?= =?UTF-8?q?=E9=87=8D=E7=9D=9B=E9=B8=9F=E4=BB=A3=E7=A0=81=E6=BA=AF=E6=BA=90?= =?UTF-8?q?=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Server/List.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/forge/Server/List.jsx b/src/forge/Server/List.jsx index d47983a80..9416d3cc1 100644 --- a/src/forge/Server/List.jsx +++ b/src/forge/Server/List.jsx @@ -46,7 +46,7 @@ function Main(props){
setVisible(false)} onOk={onOk}/>
    -
  • + {/*
  • 重睛鸟代码溯源 @@ -55,7 +55,7 @@ function Main(props){ 查看详情 -
  • + */} { // 镜像项目隐藏服务 projectDetail && parseInt(projectDetail.type) !== 2 &&
  • From 86ede5d83a054be772181614167e1be80251bebb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=80=9D?= Date: Thu, 28 May 2026 10:03:19 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E8=B7=B3=E5=9B=9E=E5=A4=B4=E6=AD=8C=E8=AF=BE=E7=A8=8B=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E6=B7=BB=E5=8A=A0=E8=B7=AF=E7=94=B1=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/loginRegister/Login.jsx | 8 ++++++-- src/modules/loginRegister/Register.jsx | 12 ++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/modules/loginRegister/Login.jsx b/src/modules/loginRegister/Login.jsx index adde3ff71..e52afdc09 100644 --- a/src/modules/loginRegister/Login.jsx +++ b/src/modules/loginRegister/Login.jsx @@ -56,9 +56,13 @@ function Login(props){ const searchParams = new URLSearchParams(search.substring(1)); const goPage = searchParams.get("go_page"); - if(goPage.includes("gitlink.educoder.net")){ + if(goPage && goPage.includes("gitlink.educoder.net")){ + const {login, real_name, nickname, email, custom_department, phone} = response.data; + const params =`websiteName=gitlink&openkey=`+Base64.encode("05e9081ede2e7425db064df44b5fb1897234f44f922443b89597d17b60dc8f3e")+`&sign=cdf0f69b4d5b4293f7914cc1f1f31742&login=`+login+`&lastname=`+real_name+`&nickname=`+nickname+`&mail=`+email+`&school_name=`+custom_department+`&phone=`+phone+``; getCurrentRole(34, 375).finally(()=>{ - window.location.href = goPage ? decodeURIComponent(goPage) : `/${response.data.login}` + const decodedGoPage = decodeURIComponent(goPage); + const separator = decodedGoPage.includes('?') ? '&' : '?'; + window.location.href = decodedGoPage + separator + params; }) }else{ window.location.href = goPage ? decodeURIComponent(goPage) : `/${response.data.login}` diff --git a/src/modules/loginRegister/Register.jsx b/src/modules/loginRegister/Register.jsx index 03eef6c2b..6e6f9f7fe 100644 --- a/src/modules/loginRegister/Register.jsx +++ b/src/modules/loginRegister/Register.jsx @@ -47,9 +47,10 @@ function Register(props){ function handleSubmit(){ form.validateFields((err, values) => { if (!err) { + const user_login = values.register_username.trim() values.agreement && axios.post(`/accounts/register.json`, { login: values.email, - namespace: values.register_username.trim(), + namespace: user_login, password: Encrypt(values.register_psd), password_confirmation: Encrypt(values.psdComfirm), code: values.captcha @@ -63,12 +64,15 @@ function Register(props){ //注册成功,页面跳转即可,注册后登录流程forge处理了 const searchParams = new URLSearchParams(search.substring(1)); const goPage = searchParams.get("go_page"); - if(goPage.includes("gitlink.educoder.net")){ + if(goPage && goPage.includes("gitlink.educoder.net")){ + const params = `websiteName=gitlink&openkey=${Base64.encode("05e9081ede2e7425db064df44b5fb1897234f44f922443b89597d17b60dc8f3e")}&sign=cdf0f69b4d5b4293f7914cc1f1f31742&login=${user_login}${values.email.includes("@") ? `&mail=${values.email}` : `&phone=${values.email}&mail=${user_login}@example.org`}` getCurrentRole(34, 375).finally(()=>{ - window.location.href = goPage ? decodeURIComponent(goPage) : `/${response.data.login}` + const decodedGoPage = decodeURIComponent(goPage); + const separator = decodedGoPage.includes('?') ? '&' : '?'; + window.location.href = decodedGoPage + separator + params; }) }else{ - window.location.href = goPage ? decodeURIComponent(goPage) : `/${response.data.login}` + window.location.href = goPage ? decodeURIComponent(goPage) : `/${user_login}` } } else { setEmailStr(values.email); From a7e8bfc2ac07d55856c8c4c51ace57d5fee1703e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=80=9D?= Date: Thu, 28 May 2026 10:22:18 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BB=93=E5=BA=93?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=B7=BB=E5=8A=A0=E7=BA=A2=E5=B1=B1=E5=BC=80?= =?UTF-8?q?=E6=BA=90=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/forge/Server/img/osredm.png | Bin 0 -> 1269 bytes src/forge/Server/img/osredm1.png | Bin 0 -> 3676 bytes src/forge/Server/img/osredm2.png | Bin 0 -> 4250 bytes .../reposyncer/component/addTaskModal.jsx | 2 + .../Server/reposyncer/component/editStore.jsx | 9 ++- .../Server/reposyncer/component/setting.jsx | 6 +- .../Server/reposyncer/component/storeList.jsx | 5 +- src/forge/Server/reposyncer/index.jsx | 52 +++++++++++++++++- 8 files changed, 60 insertions(+), 14 deletions(-) create mode 100644 src/forge/Server/img/osredm.png create mode 100644 src/forge/Server/img/osredm1.png create mode 100644 src/forge/Server/img/osredm2.png diff --git a/src/forge/Server/img/osredm.png b/src/forge/Server/img/osredm.png new file mode 100644 index 0000000000000000000000000000000000000000..7c4c2d61dec1c762533fade06fa6432ae09df9ce GIT binary patch literal 1269 zcmVg|C=Fo3Kb~FJl=983{1yG ze1TrnLt#Gm%K1bR{BMWE2MA-Ys7Ie4BU8@{$|0rbstXTNc|GSs0vJROS`b46Pj2Vl zR6E1m`+;(AVkW*555q1Lm@gm~%sDKg!FM=srV|4W_TX2pBp%NJCgWRj(MPEl@H=*k zCQ27D`~h7cGd9@(?z(Dk5KZWG*}2olhvIn$p{x?iaH0S_-i49u1R1LBH1s5A;HtqM zG%|lSQu`)fCz?m#D_p?}(Fh$%&*90CI)?=`_cbk)O|sIDm(Yzh+?(y^AboB#bdQM! z?DLb)3rL+HJ2UVZ4J^qrlElY+OVtEh=jUL;`Fmt^tyqermri~_olIbXQ@mMqmI1{y z{|h^D32S*aqaaWc#~Ab_1k_U;pfgP75PqU^F3>tJj_~#D!4TG^b4llzk#?3#rwbMV zJxy*sMt+9QGJgyl@X*zu+6m}4#91Uq=x&HtaBx5OuTNh@*Pj@tMW$_@HHa1Xr8q!c zc!);6_X&q`9SMvwpAvL3w0LrRo6T78SA{M0n?e)YUDc(4iT-fIqOf z|6TSt2OET7SJTxUNU*NG5#5K)%oANOa}Mu1bQY^=Y8y4ji=sEQK_0K}Uyr1)@iuj5 zrom*iVvd8_8`@ZIivrZiWECuo5=rUc8^b^iojgig*wcc3HkJeCpIQ*Op&hH{O!3~k4*vE%G> z20u|!K@sk6@`xKYYAf5ApTz*WvvyPwPsiCyny0$nC%$&l*Vf~_3JS-{WLaWR$*i0 z85~tHBokj^E(7))&*r#{Xvx&`cja^DuEKzF@N9J(D}5mh{k;IuvJl>4sFu5*VX17G zc-wyntb^X7oU>GlmDET9${VhX4E4W_cCwXpVQeC%tQ*AVqf$=C%XG5JH4Ro_UHaix zWQ&F@))tG!&L&bx0WG5eX+{h_Bh%1K3WO*d;$evB!up@*LH&)zb%1N#N?xh@6V0N1 z{0m?bphLAV?+xLBfWVEGiOZ&q%Z|dBW5Ws>uw)q=WkFtNL#hy`2{lBRMiNXZFqQ-* zA%w%pbs&f!n^`!Z5GL|+o=syyN2GxYAyLh}P+$aGD-W|9ribsd&zS@N;bsYtAGsxl fN(}ii;CKEniindmA+oya00000NkvXXu0mjfKM_$2 literal 0 HcmV?d00001 diff --git a/src/forge/Server/img/osredm1.png b/src/forge/Server/img/osredm1.png new file mode 100644 index 0000000000000000000000000000000000000000..f21b54e748446085054856002f901333c7159b83 GIT binary patch literal 3676 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 literal 0 HcmV?d00001 diff --git a/src/forge/Server/reposyncer/component/addTaskModal.jsx b/src/forge/Server/reposyncer/component/addTaskModal.jsx index a8a58d582..936c683fe 100644 --- a/src/forge/Server/reposyncer/component/addTaskModal.jsx +++ b/src/forge/Server/reposyncer/component/addTaskModal.jsx @@ -4,6 +4,7 @@ import axios from 'axios'; import { branchForm, confirmInfo1, confirmInfo2, synchronizeTips } from './editStore'; import gitHub from '../../img/github.png'; import gitee from '../../img/gitee.png'; +import osredm from '../../img/osredm.png'; import '../index.scss'; function DeleteBox({owner, projectsId, visible, setVisible, branchList, reload, form, sync_repositories_unique=[], repositoriesBranch}) { @@ -76,6 +77,7 @@ function DeleteBox({owner, projectsId, visible, setVisible, branchList, reload, }}> Github{!repositoriesBranch["Github"] && ",获取分支列表失败,请检查token是否有效"} Gitee{!repositoriesBranch["Gitee"] && ",获取分支列表失败,请检查token是否有效"} + Osredm{!repositoriesBranch["Osredm"] && ",获取分支列表失败,请检查token是否有效"} )} } diff --git a/src/forge/Server/reposyncer/component/editStore.jsx b/src/forge/Server/reposyncer/component/editStore.jsx index 8158f6041..325c71f8e 100644 --- a/src/forge/Server/reposyncer/component/editStore.jsx +++ b/src/forge/Server/reposyncer/component/editStore.jsx @@ -1,7 +1,5 @@ import React, {Fragment, forwardRef, useEffect, useState} from "react"; import { Button, Divider, Form, Icon, Input, Radio, Select, Steps, Tooltip, message, Modal , AutoComplete } from "antd"; -import github from '../../img/github.png'; -import gitee from '../../img/gitee.png'; import arrow from '../../img/arrow.png'; import '../index.scss'; import axios from "axios"; @@ -148,10 +146,10 @@ function EditStore(props){ // 根据已配置仓库同步的平台显示还剩哪些平台 const synchronizedPlatformList = sync_repositories_unique.map(item=>{return item.type.split("::").pop()}) - const platformList = (synchronizedPlatformList.length && ["Github", "Gitee"].filter(item=>synchronizedPlatformList.indexOf(item) === -1)) || ["Github", "Gitee"] + const platformList = (synchronizedPlatformList.length && ["Github", "Gitee", "Osredm"].filter(item=>synchronizedPlatformList.indexOf(item) === -1)) || ["Github", "Gitee", "Osredm"] // 正则:校验是否是gitee或者github的仓库地址 - const pattern = platform && (platform === "Github" ? /^https:\/\/github\.com\/.+\/.+$/ : /^https:\/\/gitee\.com\/.+\/.+$/) + const pattern = platform && (platform === "Github" ? /^https:\/\/(www\.)?github\.com\/.+\/.+$/ : platform === "Gitee" ? /^https:\/\/(www\.)?gitee\.com\/.+\/.+$/ : /^https:\/\/(www\.)?osredm\.com\/.+\/.+$/) useEffect(()=>{ // 获取分支列表 @@ -248,6 +246,7 @@ function EditStore(props){ 1、登录{platform},确保拥有读写同步仓库的权限
    {platform === "Github" && "2、找到已存在的token,或新建一个token;新建方式为:点击个人头像→Settings→Developer Settings→Personal access tokens (classic)→Generate new token"} {platform === "Gitee" && "2、找到已存在的token,或新建一个token,新建方式为:点击个人头像→设置→私人令牌→生成新令牌"} + {platform === "Osredm" && "2、找到已存在的token,或新建一个token,新建方式为:点击个人头像→账号管理→私人令牌→生成新令牌"}
    3、确保token拥有仓库读写权限,且未过期。将token复制到此处token填写框
}> @@ -300,7 +299,7 @@ function EditStore(props){