summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorVinicius Cubas Brand <viniciuscb@gmail.com>2017-11-02 10:40:38 -0200
committerVinicius Cubas Brand <viniciuscb@gmail.com>2017-11-03 11:41:40 -0200
commit10ca793452e75ecd276589f8ad916f3090ecb441 (patch)
tree2d902024afb03a4f88356b68b97369f86cec8372 /lib
parent576d31d48d1e368c0ca54a95f28dc3bc0e553d83 (diff)
downloadnextcloud-server-10ca793452e75ecd276589f8ad916f3090ecb441.tar.gz
nextcloud-server-10ca793452e75ecd276589f8ad916f3090ecb441.zip
Plugins infrastructure in User_LDAP
Signed-off-by: Vinicius Cubas Brand <viniciuscb@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/private/Group/Manager.php13
-rw-r--r--lib/public/IGroupManager.php7
-rw-r--r--lib/public/LDAP/ILDAPProvider.php50
3 files changed, 67 insertions, 3 deletions
diff --git a/lib/private/Group/Manager.php b/lib/private/Group/Manager.php
index 15d83380acf..20d19f106b4 100644
--- a/lib/private/Group/Manager.php
+++ b/lib/private/Group/Manager.php
@@ -74,7 +74,7 @@ class Manager extends PublicEmitter implements IGroupManager {
private $cachedGroups = array();
/**
- * @var \OC\Group\Group[][]
+ * @var \OC\Group\Group[]
*/
private $cachedUserGroups = array();
@@ -144,7 +144,16 @@ class Manager extends PublicEmitter implements IGroupManager {
$this->backends = array();
$this->clearCaches();
}
-
+
+ /**
+ * Get the active backends
+ * @return \OCP\GroupInterface[]
+ */
+ public function getBackends() {
+ return $this->backends;
+ }
+
+
protected function clearCaches() {
$this->cachedGroups = array();
$this->cachedUserGroups = array();
diff --git a/lib/public/IGroupManager.php b/lib/public/IGroupManager.php
index be322b64325..778a0ef169c 100644
--- a/lib/public/IGroupManager.php
+++ b/lib/public/IGroupManager.php
@@ -66,6 +66,13 @@ interface IGroupManager {
public function clearBackends();
/**
+ * Get the active backends
+ * @return \OCP\GroupInterface[]
+ * @since 13.0.0
+ */
+ public function getBackends();
+
+ /**
* @param string $gid
* @return \OCP\IGroup
* @since 8.0.0
diff --git a/lib/public/LDAP/ILDAPProvider.php b/lib/public/LDAP/ILDAPProvider.php
index 3c07dfcbe8e..03ac54d01e3 100644
--- a/lib/public/LDAP/ILDAPProvider.php
+++ b/lib/public/LDAP/ILDAPProvider.php
@@ -3,6 +3,10 @@
*
* @copyright Copyright (c) 2016, Roger Szabo (roger.szabo@web.de)
*
+ * @author Roger Szabo <roger.szabo@web.de>
+ * @author Vinicius Brand <vinicius@eita.org.br>
+ * @author Daniel Tygel <dtygel@eita.org.br>
+ *
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
@@ -36,7 +40,15 @@ interface ILDAPProvider {
* @since 11.0.0
*/
public function getUserDN($uid);
-
+
+ /**
+ * Translate a group id to LDAP DN.
+ * @param string $gid group id
+ * @return string
+ * @since 13.0.0
+ */
+ public function getGroupDN($gid);
+
/**
* Translate a LDAP DN to an internal user name.
* @param string $dn LDAP DN
@@ -69,6 +81,14 @@ interface ILDAPProvider {
* @since 11.0.0
*/
public function getLDAPConnection($uid);
+
+ /**
+ * Return a new LDAP connection resource for the specified group.
+ * @param string $gid group id
+ * @return resource of the LDAP connection
+ * @since 13.0.0
+ */
+ public function getGroupLDAPConnection($gid);
/**
* Get the LDAP base for users.
@@ -102,4 +122,32 @@ interface ILDAPProvider {
* @since 11.0.0
*/
public function clearCache($uid);
+
+ /**
+ * Get the LDAP attribute name for the user's display name
+ * @param string $uid user id
+ * @return string the display name field
+ * @throws \Exception if user id was not found in LDAP
+ * @since 12.0.0
+ */
+ public function getLDAPDisplayNameField($uid);
+
+ /**
+ * Get the LDAP attribute name for the email
+ * @param string $uid user id
+ * @return string the email field
+ * @throws \Exception if user id was not found in LDAP
+ * @since 12.0.0
+ */
+ public function getLDAPEmailField($uid);
+
+ /**
+ * Get the LDAP attribute name for the type of association betweeen users and groups
+ * @param string $gid group id
+ * @return string the configuration, one of: 'memberUid', 'uniqueMember', 'member', 'gidNumber'
+ * @throws \Exception if group id was not found in LDAP
+ * @since 13.0.0
+ */
+ public function getLDAPGroupMemberAssoc($gid);
+
}