summaryrefslogtreecommitdiffstats
path: root/lib/private/Group/Database.php
diff options
context:
space:
mode:
authorJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2018-05-16 12:32:56 +0200
committerJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2018-05-24 17:52:15 +0200
commit10c135ca3414544a92febbc45b39d358c8383757 (patch)
tree17137dc89af559ed083dd36824ba78803a8e58d1 /lib/private/Group/Database.php
parent6689a3e37b5bc71a66462c547072ad7555958c05 (diff)
downloadnextcloud-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.php35
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;
+ }
+
}