Use insertIfNotExists() when creating a group
This commit is contained in:
parent
8f89e3520d
commit
436ce1f4a6
1 changed files with 5 additions and 33 deletions
|
@ -85,44 +85,16 @@ class OC_Group_Database extends OC_Group_Backend {
|
|||
public function createGroup( $gid ) {
|
||||
$this->fixDI();
|
||||
|
||||
// Check cache first
|
||||
if (isset($this->groupCache[$gid])) {
|
||||
return false;
|
||||
} else {
|
||||
// Check for existence in DB
|
||||
$qb = $this->dbConn->getQueryBuilder();
|
||||
$cursor = $qb->select('gid')
|
||||
->from('groups')
|
||||
->where($qb->expr()->eq('gid', $qb->createNamedParameter($gid)))
|
||||
->execute();
|
||||
|
||||
$result = $cursor->fetch();
|
||||
$cursor->closeCursor();
|
||||
|
||||
if($result) {
|
||||
// Can not add an existing group
|
||||
|
||||
// Add to cache
|
||||
$this->groupCache[$gid] = $gid;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Add group and exit
|
||||
// Add group
|
||||
$qb = $this->dbConn->getQueryBuilder();
|
||||
$result = $qb->insert('groups')
|
||||
->setValue('gid', $qb->createNamedParameter($gid))
|
||||
->execute();
|
||||
|
||||
if (!$result) {
|
||||
return false;
|
||||
}
|
||||
$result = $qb->insertIfNotExists('groups', [
|
||||
'gid' => $gid,
|
||||
]);
|
||||
|
||||
// Add to cache
|
||||
$this->groupCache[$gid] = $gid;
|
||||
|
||||
return true;
|
||||
return $result === 1;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue