* finish task #38732.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user