Skip to content
Snippets Groups Projects

Fixes the active users fetching

Merged Lidiya Gelemeev requested to merge 4-backend-code-update into main
3 files
+ 41
5
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -9,6 +9,7 @@ use OCP\DB\Exception;
use OCP\IDBConnection;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCA\SccuotNC\Service\ConfigService;
use PDO;
class AccountsMapper extends ExtMapper {
const PREFERENCES_TABLE = 'preferences';
@@ -20,8 +21,19 @@ class AccountsMapper extends ExtMapper {
}
public function queryTotalCount(string $state): int {
$users = $this->configService->config()->getUsersForUserValue('core', 'enabled', $state);
return count($users);
$users = $this->configService->config()->getUsersForUserValue('core', 'enabled', 'false');
if ($state === 'false') {
return count($users);
}
$qb = $this->db->getQueryBuilder();
$qb->selectAlias($qb->createFunction('COUNT(uid)'), 'c')
->from('accounts');
$stmt = $qb->execute();
$result = $stmt->fetch();
$stmt->closeCursor();
return $result['c'] - count($users);
}
/**
@@ -45,7 +57,7 @@ class AccountsMapper extends ExtMapper {
* @throws \Exception
*/
public function queryUserStorages(): array {
$activeUsers = $this->configService->config()->getUsersForUserValue('core', 'enabled', 'true');
$activeUsers = $this->getActiveUsers();
$data = [
'storages' => []
];
@@ -76,7 +88,7 @@ class AccountsMapper extends ExtMapper {
}
public function queryUserQuotas($defaultQuotas) {
$activeUsers = $this->configService->config()->getUsersForUserValue('core', 'enabled', 'true');
$activeUsers = $this->getActiveUsers();
$data = [
'defaultQuotas' => $defaultQuotas,
'quotas' => []
@@ -121,4 +133,18 @@ class AccountsMapper extends ExtMapper {
return false;
}
protected function getActiveUsers(): array {
$deactivatedUsers = $this->configService->config()->getUsersForUserValue('core', 'enabled', 'false');
$qb = $this->db->getQueryBuilder();
$qb->select('uid')
->from('accounts');
$stmt = $qb->execute();
$result = $stmt->fetchAll(PDO::FETCH_COLUMN);
$stmt->closeCursor();
$activeUsers = array_diff($result, $deactivatedUsers);
return $activeUsers;
}
}
Loading