make table name configurable for db user backend

Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
Robin Appelman 2018-06-14 14:34:19 +02:00 committed by Morris Jobke
parent 8646f01320
commit 3392302d22
No known key found for this signature in database
GPG Key ID: FE03C3A163FEDE68
1 changed files with 13 additions and 9 deletions

View File

@ -92,14 +92,18 @@ class Database extends ABackend
/** @var IDBConnection */ /** @var IDBConnection */
private $dbConn; private $dbConn;
/** @var string */
private $table;
/** /**
* \OC\User\Database constructor. * \OC\User\Database constructor.
* *
* @param EventDispatcher $eventDispatcher * @param EventDispatcher $eventDispatcher
* @param string $table * @param string $table
*/ */
public function __construct($eventDispatcher = null) { public function __construct($eventDispatcher = null, $table = 'users') {
$this->cache = new CappedMemoryCache(); $this->cache = new CappedMemoryCache();
$this->table = $table;
$this->eventDispatcher = $eventDispatcher ? $eventDispatcher : \OC::$server->getEventDispatcher(); $this->eventDispatcher = $eventDispatcher ? $eventDispatcher : \OC::$server->getEventDispatcher();
} }
@ -130,7 +134,7 @@ class Database extends ABackend
$this->eventDispatcher->dispatch('OCP\PasswordPolicy::validate', $event); $this->eventDispatcher->dispatch('OCP\PasswordPolicy::validate', $event);
$qb = $this->dbConn->getQueryBuilder(); $qb = $this->dbConn->getQueryBuilder();
$qb->insert('users') $qb->insert($this->table)
->values([ ->values([
'uid' => $qb->createNamedParameter($uid), 'uid' => $qb->createNamedParameter($uid),
'password' => $qb->createNamedParameter(\OC::$server->getHasher()->hash($password)), 'password' => $qb->createNamedParameter(\OC::$server->getHasher()->hash($password)),
@ -161,7 +165,7 @@ class Database extends ABackend
// Delete user-group-relation // Delete user-group-relation
$query = $this->dbConn->getQueryBuilder(); $query = $this->dbConn->getQueryBuilder();
$query->delete('users') $query->delete($this->table)
->where($query->expr()->eq('uid_lower', $query->createNamedParameter(mb_strtolower($uid)))); ->where($query->expr()->eq('uid_lower', $query->createNamedParameter(mb_strtolower($uid))));
$result = $query->execute(); $result = $query->execute();
@ -192,7 +196,7 @@ class Database extends ABackend
$hashedPassword = $hasher->hash($password); $hashedPassword = $hasher->hash($password);
$query = $this->dbConn->getQueryBuilder(); $query = $this->dbConn->getQueryBuilder();
$query->update('users') $query->update($this->table)
->set('password', $query->createNamedParameter($hashedPassword)) ->set('password', $query->createNamedParameter($hashedPassword))
->where($query->expr()->eq('uid_lower', $query->createNamedParameter(mb_strtolower($uid)))); ->where($query->expr()->eq('uid_lower', $query->createNamedParameter(mb_strtolower($uid))));
$result = $query->execute(); $result = $query->execute();
@ -217,7 +221,7 @@ class Database extends ABackend
if ($this->userExists($uid)) { if ($this->userExists($uid)) {
$query = $this->dbConn->getQueryBuilder(); $query = $this->dbConn->getQueryBuilder();
$query->update('users') $query->update($this->table)
->set('displayname', $query->createNamedParameter($displayName)) ->set('displayname', $query->createNamedParameter($displayName))
->where($query->expr()->eq('uid_lower', $query->createNamedParameter(mb_strtolower($uid)))); ->where($query->expr()->eq('uid_lower', $query->createNamedParameter(mb_strtolower($uid))));
$query->execute(); $query->execute();
@ -256,7 +260,7 @@ class Database extends ABackend
$query = $this->dbConn->getQueryBuilder(); $query = $this->dbConn->getQueryBuilder();
$query->select('uid', 'displayname') $query->select('uid', 'displayname')
->from('users', 'u') ->from($this->table, 'u')
->leftJoin('u', 'preferences', 'p', $query->expr()->andX( ->leftJoin('u', 'preferences', 'p', $query->expr()->andX(
$query->expr()->eq('userid', 'uid'), $query->expr()->eq('userid', 'uid'),
$query->expr()->eq('appid', $query->expr()->literal('settings')), $query->expr()->eq('appid', $query->expr()->literal('settings')),
@ -295,7 +299,7 @@ class Database extends ABackend
$qb = $this->dbConn->getQueryBuilder(); $qb = $this->dbConn->getQueryBuilder();
$qb->select('uid', 'password') $qb->select('uid', 'password')
->from('users') ->from($this->table)
->where( ->where(
$qb->expr()->eq( $qb->expr()->eq(
'uid_lower', $qb->createNamedParameter(mb_strtolower($uid)) 'uid_lower', $qb->createNamedParameter(mb_strtolower($uid))
@ -339,7 +343,7 @@ class Database extends ABackend
$qb = $this->dbConn->getQueryBuilder(); $qb = $this->dbConn->getQueryBuilder();
$qb->select('uid', 'displayname') $qb->select('uid', 'displayname')
->from('users') ->from($this->table)
->where( ->where(
$qb->expr()->eq( $qb->expr()->eq(
'uid_lower', $qb->createNamedParameter(mb_strtolower($uid)) 'uid_lower', $qb->createNamedParameter(mb_strtolower($uid))
@ -422,7 +426,7 @@ class Database extends ABackend
$query = $this->dbConn->getQueryBuilder(); $query = $this->dbConn->getQueryBuilder();
$query->select($query->func()->count('uid')) $query->select($query->func()->count('uid'))
->from('users'); ->from($this->table);
$result = $query->execute(); $result = $query->execute();
return $result->fetchColumn(); return $result->fetchColumn();