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')); ?>
  • @@ -155,6 +156,15 @@ $cfgClass = $ocVersion >= 7 ? 'section' : 'personalblock'; t('You can use the placeholders %%u to specify the user ID (before appending the default domain), %%ud to specify the user ID (after appending the default domain) and %%d to specify the default domain')); ?>

    +
    +

    + +

    + +

    + +
    +