* finish task #38732.

This commit is contained in:
wangyidong
2021-06-21 15:02:35 +08:00
parent b20038e6c2
commit 205129859f
+37
View File
@@ -679,6 +679,10 @@ class upgradeModel extends model
case '15_0_1':
$this->saveLogs('Execute 15_0_1');
$this->appendExec('15_0_1');
case '15_0_2':
$this->saveLogs('Execute 15_0_2');
$this->uniqueProjectAdmin();
$this->appendExec('15_0_2');
}
$this->deletePatch();
@@ -4988,4 +4992,37 @@ class upgradeModel extends model
$this->dao->update(TABLE_PRODUCT)->set('createdVersion')->eq($this->config->version)->where('createdVersion')->eq('')->andWhere('createdDate')->gt('2020-01-01')->exec();
return true;
}
/**
* Unique projectAdmin group.
*
* @access public
* @return bool
*/
public function uniqueProjectAdmin()
{
$projectAdmins = $this->dao->select('*')->from(TABLE_GROUP)->where('role')->eq('projectAdmin')->orderBy('id')->fetchAll('id');
if(count($projectAdmins) == 1) return true;
$holdGroup = reset($projectAdmins);
unset($projectAdmins[$holdGroup->id]);
$userGroups = $this->dao->select('*')->from(TABLE_USERGROUP)->where('`group`')->in(array_keys($projectAdmins))->fetchGroup('group', 'account');
foreach($userGroups as $groupID => $groups)
{
foreach($groups as $account => $userGroup)
{
$this->dao->delete()->from(TABLE_USERGROUP)->where('`group`')->eq($userGroup->group)->andWhere('account')->eq($userGroup->account)->exec();
$newUserGroup = new stdclass();
$newUserGroup->account = $account;
$newUserGroup->project = $userGroup->project;
$newUserGroup->group = $holdGroup->id;
$this->dao->replace(TABLE_USERGROUP)->data($newUserGroup)->exec();
}
}
$this->dao->delete()->from(TABLE_GROUP)->where('id')->in(array_keys($projectAdmins))->exec();
return true;
}
}