Skip to content
Snippets Groups Projects
Unverified Commit 1aa9c916 authored by Joas Schilling's avatar Joas Schilling
Browse files

Fix comparing the empty string for global credentials

parent cffad627
No related branches found
No related tags found
No related merge requests found
...@@ -332,11 +332,17 @@ class Connection extends ReconnectWrapper implements IDBConnection { ...@@ -332,11 +332,17 @@ class Connection extends ReconnectWrapper implements IDBConnection {
$where = $updateQb->expr()->andX(); $where = $updateQb->expr()->andX();
$whereValues = array_merge($keys, $updatePreconditionValues); $whereValues = array_merge($keys, $updatePreconditionValues);
foreach ($whereValues as $name => $value) { foreach ($whereValues as $name => $value) {
$where->add($updateQb->expr()->eq( if ($value === '') {
$name, $where->add($updateQb->expr()->emptyString(
$updateQb->createNamedParameter($value, $this->getType($value)), $name
$this->getType($value) ));
)); } else {
$where->add($updateQb->expr()->eq(
$name,
$updateQb->createNamedParameter($value, $this->getType($value)),
$this->getType($value)
));
}
} }
$updateQb->where($where); $updateQb->where($where);
$affected = $updateQb->execute(); $affected = $updateQb->execute();
......
...@@ -81,9 +81,13 @@ class CredentialsManager implements ICredentialsManager { ...@@ -81,9 +81,13 @@ class CredentialsManager implements ICredentialsManager {
$qb = $this->dbConnection->getQueryBuilder(); $qb = $this->dbConnection->getQueryBuilder();
$qb->select('credentials') $qb->select('credentials')
->from(self::DB_TABLE) ->from(self::DB_TABLE)
->where($qb->expr()->eq('user', $qb->createNamedParameter((string)$userId))) ->where($qb->expr()->eq('identifier', $qb->createNamedParameter($identifier)));
->andWhere($qb->expr()->eq('identifier', $qb->createNamedParameter($identifier)))
; if ($userId === '') {
$qb->andWhere($qb->expr()->emptyString('user'));
} else {
$qb->andWhere($qb->expr()->eq('user', $qb->createNamedParameter((string)$userId)));
}
$qResult = $qb->execute(); $qResult = $qb->execute();
$result = $qResult->fetch(); $result = $qResult->fetch();
...@@ -107,9 +111,14 @@ class CredentialsManager implements ICredentialsManager { ...@@ -107,9 +111,14 @@ class CredentialsManager implements ICredentialsManager {
public function delete($userId, $identifier) { public function delete($userId, $identifier) {
$qb = $this->dbConnection->getQueryBuilder(); $qb = $this->dbConnection->getQueryBuilder();
$qb->delete(self::DB_TABLE) $qb->delete(self::DB_TABLE)
->where($qb->expr()->eq('user', $qb->createNamedParameter((string)$userId))) ->where($qb->expr()->eq('identifier', $qb->createNamedParameter($identifier)));
->andWhere($qb->expr()->eq('identifier', $qb->createNamedParameter($identifier)))
; if ($userId === '') {
$qb->andWhere($qb->expr()->emptyString('user'));
} else {
$qb->andWhere($qb->expr()->eq('user', $qb->createNamedParameter((string)$userId)));
}
return $qb->execute(); return $qb->execute();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment