diff --git a/src/forge/Merge/MessageCount.js b/src/forge/Merge/MessageCount.js index 507c62dd..71e74668 100644 --- a/src/forge/Merge/MessageCount.js +++ b/src/forge/Merge/MessageCount.js @@ -40,6 +40,7 @@ class MessageCount extends Component { SpinMerge: false, edit_spin: false, pr_status: undefined, + pull_request:undefined, copyVisible:false, }; @@ -69,11 +70,12 @@ class MessageCount extends Component { axios .get(url) .then((result) => { - if (result) { + if (result && result.data) { this.setState({ data: result.data, SpinFlag: false, - pr_status: result.data && result.data.pull_request && result.data.pull_request.status, + pr_status: result.data.pull_request && result.data.pull_request.status, + pull_request:result.data.pull_request }); } else { this.setState({ SpinFlag: false }); @@ -120,12 +122,12 @@ class MessageCount extends Component { SpinMerge: true, }); const { projectsId , owner } = this.props.match.params; - const { data, title, body, mergekey, pr_status } = this.state; - const url = `/${owner}/${projectsId}/pulls/${data.pull_request.id}/pr_merge.json`; + const { title, body, mergekey, pull_request } = this.state; + const url = `/${owner}/${projectsId}/pulls/${pull_request.id}/pr_merge.json`; axios .post(url, { project_id: projectsId, - id: data.pull_request.id, + id: pull_request.id, do: mergekey, body: body, title: title, @@ -249,9 +251,15 @@ class MessageCount extends Component { isSpin, ismesrge, SpinFlag, - copyVisible + copyVisible, + pull_request } = this.state; const { current_user, projectDetail } = this.props; + + const permission = projectDetail && (projectDetail.permission === "Admin" || projectDetail.permission === "Owner"); + const userLogin = current_user && current_user.login && (pull_request && pull_request.create_user === current_user.login); + const operate = current_user && projectDetail && pr_status === 0 && (permission || userLogin); + const menu = (