* Fix user view bug.

This commit is contained in:
sgm0422
2020-06-16 14:15:22 +08:00
parent bb92200ea5
commit 19a1db72df
3 changed files with 18 additions and 2 deletions
+6
View File
@@ -387,6 +387,7 @@ class groupModel extends model
*/
public function updatePgmAdmin($groupID)
{
$this->loadModel('user');
$this->dao->delete()->from(TABLE_USERGROUP)->where('`group`')->eq($groupID)->exec();
$members = $this->post->members ? $this->post->members : array();
@@ -400,6 +401,11 @@ class groupModel extends model
$data->program = implode($programs[$account], ',');
$this->dao->replace(TABLE_USERGROUP)->data($data)->exec();
foreach($programs[$account] as $programID)
{
if(!$programID) continue;
$this->user->updateUserView($programID, 'program');
}
}
if(!dao::isError()) return true;
+1
View File
@@ -141,6 +141,7 @@ class program extends control
*/
public function group($programID = 0)
{
$this->session->set('program', $programID);
$title = $this->lang->company->orgView . $this->lang->colon . $this->lang->group->browse;
$position[] = $this->lang->group->browse;
+11 -2
View File
@@ -1329,7 +1329,7 @@ class userModel extends model
}
$allProducts = $this->dao->select('id,PO,QD,RD,createdBy,acl,whitelist')->from(TABLE_PRODUCT)->where('program')->in($programs)->fetchAll('id');
$allProjects = $this->dao->select('id,PO,PM,QD,RD,acl,whitelist')->from(TABLE_PROJECT)->where('program')->eq($programs)->fetchAll('id');
$allProjects = $this->dao->select('id,PO,PM,QD,RD,acl,whitelist')->from(TABLE_PROJECT)->where('program')->in($programs)->fetchAll('id');
if($projectProducts === null)
{
$stmt = $this->dao->select('project,product')->from(TABLE_PROJECTPRODUCT)->query();
@@ -1469,7 +1469,8 @@ class userModel extends model
$object = $this->dao->select('*')->from($table)->where('id')->eq($objectID)->fetch();
if($object->acl == 'open') return true;
$allGroups = $this->dao->select('account,`group`')->from(TABLE_USERGROUP)->fetchAll();
$allGroups = $this->dao->select('account,`group`')->from(TABLE_USERGROUP)->fetchAll();
$managePrograms = $this->dao->select('account, program')->from(TABLE_USERGROUP)->where('program')->ne('')->fetchPairs();
$userGroups = array();
foreach($allGroups as $group)
{
@@ -1520,9 +1521,17 @@ class userModel extends model
}
elseif($objectType == 'program')
{
$manageProgram = zget($managePrograms, $account, '');
$hasPriv = $this->checkProjectPriv($object, $account, zget($userGroups, $account, ''), zget($teams, $objectID));
if($hasPriv and strpos(",{$userView->programs},", ",{$objectID},") === false) $userView->programs .= ",{$objectID}";
if(!$hasPriv and strpos(",{$userView->programs},", ",{$objectID},") !== false) $userView->programs = trim(str_replace(",{$objectID},", ',', ",{$userView->programs},"), ',');
if($manageProgram)
{
foreach(explode(',', $manageProgram) as $program)
{
if(strpos(",{$userView->programs},", ",{$program},") === false) $userView->programs .= ",{$program}";
}
}
$userObjects[$account]['programs'] = $userView->programs;
}
}