* Fix bug#39034,39039
This commit is contained in:
@@ -14,3 +14,23 @@ window.renderGitlabUser = function(result, {row})
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
window.bindUser = function()
|
||||
{
|
||||
const myDTable = $('#table-gitea-binduser').zui('dtable');
|
||||
const formData = myDTable.$.getFormData();
|
||||
|
||||
var bindData = $('#table-gitea-binduser').zui('dtable').$.props.data;
|
||||
var postData = {};
|
||||
postData['giteaUserNames[]'] = [];
|
||||
for(i in bindData)
|
||||
{
|
||||
postData['giteaUserNames[]'].push(bindData[i].giteaID);
|
||||
postData['zentaoUsers[' + bindData[i].giteaID + ']'] = formData['zentaoUsers[' + bindData[i].giteaID + ']'];
|
||||
}
|
||||
|
||||
$.ajaxSubmit({
|
||||
url: $.createLink('gitea', 'bindUser', 'giteaID=' + giteaID + '&type=' + type),
|
||||
data: postData
|
||||
});
|
||||
}
|
||||
|
||||
@@ -116,7 +116,7 @@ class giteaModel extends model
|
||||
|
||||
if(count($repeatUsers))
|
||||
{
|
||||
dao::$errors[] = sprintf($this->lang->gitea->bindUserError, join(',', $repeatUsers));
|
||||
dao::$errors = sprintf($this->lang->gitea->bindUserError, join(',', $repeatUsers));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,8 @@ featureBar
|
||||
toolbar();
|
||||
|
||||
jsVar('zentaoUsers', $zentaoUsers);
|
||||
jsVar('giteaID', $giteaID);
|
||||
jsVar('type', $type);
|
||||
$config->gitea->dtable->bindUser->fieldList['giteaEmail']['onRenderCell'] = jsRaw('renderGitlabUser');
|
||||
$config->gitea->dtable->bindUser->fieldList['zentaoUsers']['controlItems'] = $userPairs;
|
||||
form
|
||||
@@ -48,7 +50,7 @@ form
|
||||
array(
|
||||
'text' => $lang->save,
|
||||
'btnType' => 'primary',
|
||||
'onClick' => jsRaw("() => {\$('#bindForm').trigger('submit')}")
|
||||
'onClick' => jsRaw("() => {bindUser()}")
|
||||
),
|
||||
array(
|
||||
'text' => $lang->goback,
|
||||
|
||||
@@ -630,7 +630,7 @@ class gitlab extends control
|
||||
{
|
||||
$message = dao::getError();
|
||||
foreach($message as &$msg) if(is_string($msg)) $msg = zget($this->lang->gitlab->errorResonse, $msg, $msg);
|
||||
return $this->send(array('result' => 'fail', 'message' => $message));
|
||||
return $this->send(array('result' => 'fail', 'message' => $message));
|
||||
}
|
||||
return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inlink('browseUser', "gitlabID=$gitlabID")));
|
||||
}
|
||||
|
||||
@@ -14,3 +14,23 @@ window.renderGitlabUser = function(result, {row})
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
window.bindUser = function()
|
||||
{
|
||||
const myDTable = $('#table-gitlab-binduser').zui('dtable');
|
||||
const formData = myDTable.$.getFormData();
|
||||
|
||||
var bindData = $('#table-gitlab-binduser').zui('dtable').$.props.data;
|
||||
var postData = {};
|
||||
postData['gitlabUserNames[]'] = [];
|
||||
for(i in bindData)
|
||||
{
|
||||
postData['gitlabUserNames[]'].push(bindData[i].gitlabID);
|
||||
postData['zentaoUsers[' + bindData[i].gitlabID + ']'] = formData['zentaoUsers[' + bindData[i].gitlabID + ']'];
|
||||
}
|
||||
|
||||
$.ajaxSubmit({
|
||||
url: $.createLink('gitlab', 'bindUser', 'gitlabID=' + gitlabID + '&type=' + type),
|
||||
data: postData
|
||||
});
|
||||
}
|
||||
|
||||
@@ -24,6 +24,8 @@ featureBar
|
||||
toolbar();
|
||||
|
||||
jsVar('zentaoUsers', $zentaoUsers);
|
||||
jsVar('gitlabID', $gitlabID);
|
||||
jsVar('type', $type);
|
||||
$config->gitlab->dtable->bindUser->fieldList['gitlabEmail']['onRenderCell'] = jsRaw('renderGitlabUser');
|
||||
$config->gitlab->dtable->bindUser->fieldList['zentaoUsers']['controlItems'] = $userPairs;
|
||||
form
|
||||
@@ -48,7 +50,7 @@ form
|
||||
array(
|
||||
'text' => $lang->save,
|
||||
'btnType' => 'primary',
|
||||
'onClick' => jsRaw("() => {\$('#bindForm').trigger('submit')}")
|
||||
'onClick' => jsRaw("() => {bindUser()}")
|
||||
),
|
||||
array(
|
||||
'text' => $lang->goback,
|
||||
|
||||
@@ -14,3 +14,23 @@ window.renderGitlabUser = function(result, {row})
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
window.bindUser = function()
|
||||
{
|
||||
const myDTable = $('#table-gogs-binduser').zui('dtable');
|
||||
const formData = myDTable.$.getFormData();
|
||||
|
||||
var bindData = $('#table-gogs-binduser').zui('dtable').$.props.data;
|
||||
var postData = {};
|
||||
postData['gogsUserNames[]'] = [];
|
||||
for(i in bindData)
|
||||
{
|
||||
postData['gogsUserNames[]'].push(bindData[i].gogsID);
|
||||
postData['zentaoUsers[' + bindData[i].gogsID + ']'] = formData['zentaoUsers[' + bindData[i].gogsID + ']'];
|
||||
}
|
||||
|
||||
$.ajaxSubmit({
|
||||
url: $.createLink('gogs', 'bindUser', 'gogsID=' + gogsID + '&type=' + type),
|
||||
data: postData
|
||||
});
|
||||
}
|
||||
|
||||
@@ -24,6 +24,8 @@ featureBar
|
||||
toolbar();
|
||||
|
||||
jsVar('zentaoUsers', $zentaoUsers);
|
||||
jsVar('gogsID', $gogsID);
|
||||
jsVar('type', $type);
|
||||
$config->gogs->dtable->bindUser->fieldList['gogsEmail']['onRenderCell'] = jsRaw('renderGitlabUser');
|
||||
$config->gogs->dtable->bindUser->fieldList['zentaoUsers']['controlItems'] = $userPairs;
|
||||
form
|
||||
@@ -48,7 +50,7 @@ form
|
||||
array(
|
||||
'text' => $lang->save,
|
||||
'btnType' => 'primary',
|
||||
'onClick' => jsRaw("() => {\$('#bindForm').trigger('submit')}")
|
||||
'onClick' => jsRaw("() => {bindUser()}")
|
||||
),
|
||||
array(
|
||||
'text' => $lang->goback,
|
||||
|
||||
+21
-1
@@ -288,13 +288,32 @@ class mr extends control
|
||||
$sourceBranch = $this->$scm->apiGetSingleBranch($MR->hostID, $MR->sourceProject, $MR->sourceBranch);
|
||||
$targetBranch = $this->$scm->apiGetSingleBranch($MR->hostID, $MR->targetProject, $MR->targetBranch);
|
||||
|
||||
$projectOwner = false;
|
||||
$projectOwner = $projectEdit = false;
|
||||
if(isset($MR->hostID) and !$this->app->user->admin)
|
||||
{
|
||||
$openID = $this->$scm->getUserIDByZentaoAccount($MR->hostID, $this->app->user->account);
|
||||
if(!$projectOwner and isset($sourceProject->owner->id) and $sourceProject->owner->id == $openID) $projectOwner = true;
|
||||
}
|
||||
|
||||
if($scm == 'gitlab')
|
||||
{
|
||||
$gitUsers = $this->gitlab->getUserAccountIdPairs($MR->hostID);
|
||||
$groupIDList = array(0 => 0);
|
||||
$groups = $this->gitlab->apiGetGroups($MR->hostID, 'name_asc', 'developer');
|
||||
foreach($groups as $group) $groupIDList[] = $group->id;
|
||||
$isDeveloper = $this->gitlab->checkUserAccess($MR->hostID, 0, $sourceProject, $groupIDList, 'developer');
|
||||
|
||||
if(isset($gitUsers[$this->app->user->account]) && $isDeveloper) $projectEdit = true;
|
||||
}
|
||||
elseif($scm == 'gitea')
|
||||
{
|
||||
$projectEdit = (isset($sourceProject->allow_merge_commits) and $sourceProject->allow_merge_commits == true) ? true : false;
|
||||
}
|
||||
elseif($scm == 'gogs')
|
||||
{
|
||||
$projectEdit = (isset($sourceProject->permissions->push) and $sourceProject->permissions->push) ? true : false;
|
||||
}
|
||||
|
||||
$this->view->sourceProjectName = $sourceProject->name_with_namespace;
|
||||
$this->view->targetProjectName = $targetProject->name_with_namespace;
|
||||
$this->view->sourceProjectURL = isset($sourceBranch->web_url) ? $sourceBranch->web_url : '';
|
||||
@@ -311,6 +330,7 @@ class mr extends control
|
||||
$this->view->compile = $this->loadModel('compile')->getById($MR->compileID);
|
||||
$this->view->compileJob = $MR->jobID ? $this->job->getById($MR->jobID) : false;
|
||||
$this->view->projectOwner = $projectOwner;
|
||||
$this->view->projectEdit = $projectEdit;
|
||||
|
||||
$this->view->title = $this->lang->mr->view;
|
||||
$this->view->MR = $MR;
|
||||
|
||||
@@ -39,6 +39,7 @@ foreach($config->mr->view->operateList as $operate)
|
||||
if($operate == 'reopen' && (!$MR->synced || $rawMR->state != 'closed')) continue;
|
||||
|
||||
if($operate == 'delete' && !$projectOwner && !$this->app->user->admin) $action['disabled'] = true;
|
||||
if($operate == 'edit' && !$projectEdit && !$this->app->user->admin) $action['disabled'] = true;
|
||||
|
||||
if($operate === 'edit' || $operate === 'delete')
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user