diff options
author | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2018-05-16 12:32:56 +0200 |
---|---|---|
committer | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2018-05-24 17:52:15 +0200 |
commit | 10c135ca3414544a92febbc45b39d358c8383757 (patch) | |
tree | 17137dc89af559ed083dd36824ba78803a8e58d1 /lib/private/Group/Database.php | |
parent | 6689a3e37b5bc71a66462c547072ad7555958c05 (diff) | |
download | nextcloud-server-10c135ca3414544a92febbc45b39d358c8383757.tar.gz nextcloud-server-10c135ca3414544a92febbc45b39d358c8383757.zip |
Added disabled count per groups
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Diffstat (limited to 'lib/private/Group/Database.php')
-rw-r--r-- | lib/private/Group/Database.php | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/private/Group/Database.php b/lib/private/Group/Database.php index 639df3de0de..90aacdf0020 100644 --- a/lib/private/Group/Database.php +++ b/lib/private/Group/Database.php @@ -5,6 +5,7 @@ * @author Aaron Wood <aaronjwood@gmail.com> * @author Loki3000 <github@labcms.ru> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author John Molakvoæ <skjnldsv@protonmail.com> * * @license AGPL-3.0 * @@ -40,8 +41,10 @@ namespace OC\Group; +use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\Group\Backend\ABackend; use OCP\Group\Backend\IAddToGroupBackend; +use OCP\Group\Backend\ICountDisabledInGroup; use OCP\Group\Backend\ICountUsersBackend; use OCP\Group\Backend\ICreateGroupBackend; use OCP\Group\Backend\IDeleteGroupBackend; @@ -53,6 +56,7 @@ use OCP\IDBConnection; */ class Database extends ABackend implements IAddToGroupBackend, + ICountDisabledInGroup, ICountUsersBackend, ICreateGroupBackend, IDeleteGroupBackend, @@ -373,4 +377,35 @@ class Database extends ABackend return $count; } + /** + * get the number of disabled users in a group + * + * @param string $search + * @return int|bool + */ + public function countDisabledInGroup(string $gid): int { + $this->fixDI(); + + $query = $this->dbConn->getQueryBuilder(); + $query->select($query->createFunction('COUNT(Distinct uid)')) + ->from('preferences', 'p') + ->innerJoin('p', 'group_user', 'g', 'p.userid = g.uid') + ->where($query->expr()->eq('appid', $query->createNamedParameter('core'))) + ->andWhere($query->expr()->eq('configkey', $query->createNamedParameter('enabled'))) + ->andWhere($query->expr()->eq('configvalue', $query->createNamedParameter('false'), IQueryBuilder::PARAM_STR)) + ->andWhere($query->expr()->eq('gid', $query->createNamedParameter($gid), IQueryBuilder::PARAM_STR)); + + $result = $query->execute(); + $count = $result->fetchColumn(); + $result->closeCursor(); + + if ($count !== false) { + $count = (int)$count; + } else { + $count = 0; + } + + return $count; + } + } |