From 3a21b2ddafd3d56c254a5c717b03067691f73f8e Mon Sep 17 00:00:00 2001
From: Patrick Valsecchi
Date: Tue, 19 Dec 2017 09:31:07 +0100
Subject: [PATCH] Add support for groups
---
ajax/settings.php | 2 +-
appinfo/app.php | 3 +++
lib/helper.php | 17 ++++++++++++++++-
templates/settings.php | 10 ++++++++++
4 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/ajax/settings.php b/ajax/settings.php
index ee085a6..a25fbfa 100644
--- a/ajax/settings.php
+++ b/ajax/settings.php
@@ -80,7 +80,7 @@ if(isset($_POST['appname']) && ($_POST['appname'] === 'user_sql') && isset($_POS
$columns = array();
foreach($params as $param)
{
- if(strpos($param, 'col_') === 0)
+ if(strpos($param, 'col_') === 0 && strpos($param, 'col_group_') !== 0)
{
if(isset($_POST[$param]) && $_POST[$param] !== '')
$columns[] = $_POST[$param];
diff --git a/appinfo/app.php b/appinfo/app.php
index 2617fb9..28ac922 100644
--- a/appinfo/app.php
+++ b/appinfo/app.php
@@ -22,10 +22,13 @@
*/
require_once __DIR__ . '/../user_sql.php';
+require_once __DIR__ . '/../group_sql.php';
\OCP\App::registerAdmin('user_sql','settings');
$backend = new \OCA\user_sql\OC_USER_SQL;
+$group_backend = new \OCA\user_sql\OC_GROUP_SQL;
// register user backend
\OC_User::useBackend($backend);
+\OC::$server->getGroupManager()->addBackend($group_backend);
diff --git a/lib/helper.php b/lib/helper.php
index 7a3023f..e19bc6b 100644
--- a/lib/helper.php
+++ b/lib/helper.php
@@ -64,7 +64,10 @@ class Helper {
'set_mail_sync_mode',
'set_enable_gethome',
'set_gethome_mode',
- 'set_gethome'
+ 'set_gethome',
+ 'sql_group_table',
+ 'col_group_username',
+ 'col_group_name'
);
return $params;
@@ -173,6 +176,18 @@ class Helper {
case 'mysqlPassword':
$query = "SELECT PASSWORD(:pw);";
break;
+
+ case 'getUserGroups':
+ $query = "SELECT ".$this->settings['col_group_name']." FROM ".$this->settings['sql_group_table']." WHERE ".$this->settings['col_group_username']." = :uid";
+ break;
+
+ case 'getGroups':
+ $query = "SELECT distinct ".$this->settings['col_group_name']." FROM ".$this->settings['sql_group_table'];
+ break;
+
+ case 'getGroupUsers':
+ $query = "SELECT distinct ".$this->settings['col_group_username']." FROM ".$this->settings['sql_group_table']." WHERE ".$this->settings['col_group_name']." = :gid";
+ break;
}
if(isset($limits['limit']) && $limits['limit'] !== null)
diff --git a/templates/settings.php b/templates/settings.php
index c555c5c..11dd10b 100644
--- a/templates/settings.php
+++ b/templates/settings.php
@@ -20,6 +20,7 @@ $cfgClass = $ocVersion >= 7 ? 'section' : 'personalblock';
t('E-Mail Settings')); ?>
t('Domain Settings')); ?>
t('getHome Settings')); ?>
+ t('Groups Settings')); ?>
+
+