summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Mueller <thomas.mueller@tmit.eu>2013-02-11 22:01:52 +0100
committerThomas Mueller <thomas.mueller@tmit.eu>2013-02-11 22:01:52 +0100
commit5731a1b01cc5ba1a4f1226336a56761d967c8e88 (patch)
treeafa8473bfe1e58e99f28c2896afde106fa25a3e6
parent037fcde1334d7b4d2bdeaaad0a71adc692b27ff8 (diff)
downloadnextcloud-server-5731a1b01cc5ba1a4f1226336a56761d967c8e88.tar.gz
nextcloud-server-5731a1b01cc5ba1a4f1226336a56761d967c8e88.zip
introduce new virtual method hasUserListings() to determine if a user backend can list it's users.
-rw-r--r--apps/user_ldap/user_ldap.php6
-rw-r--r--apps/user_ldap/user_proxy.php8
-rwxr-xr-xapps/user_webdavauth/user_webdavauth.php6
-rw-r--r--lib/user.php2
-rw-r--r--lib/user/backend.php24
-rw-r--r--lib/user/database.php82
-rw-r--r--lib/user/dummy.php7
-rw-r--r--lib/user/interface.php7
8 files changed, 95 insertions, 47 deletions
diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php
index 0962756228c..7778c37c794 100644
--- a/apps/user_ldap/user_ldap.php
+++ b/apps/user_ldap/user_ldap.php
@@ -261,4 +261,10 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface {
return (bool)((OC_USER_BACKEND_CHECK_PASSWORD | OC_USER_BACKEND_GET_HOME) & $actions);
}
+ /**
+ * @return bool
+ */
+ public function hasUserListings() {
+ return true;
+ }
} \ No newline at end of file
diff --git a/apps/user_ldap/user_proxy.php b/apps/user_ldap/user_proxy.php
index a94be3354fc..b150e2f32c3 100644
--- a/apps/user_ldap/user_proxy.php
+++ b/apps/user_ldap/user_proxy.php
@@ -183,4 +183,12 @@ class User_Proxy extends lib\Proxy implements \OCP\UserInterface {
public function deleteUser($uid) {
return false;
}
+
+ /**
+ * @return bool
+ */
+ public function hasUserListings() {
+ return true;
+ }
+
} \ No newline at end of file
diff --git a/apps/user_webdavauth/user_webdavauth.php b/apps/user_webdavauth/user_webdavauth.php
index dd34e0ad2f1..6417e45434d 100755
--- a/apps/user_webdavauth/user_webdavauth.php
+++ b/apps/user_webdavauth/user_webdavauth.php
@@ -65,6 +65,12 @@ class OC_USER_WEBDAVAUTH extends OC_User_Backend {
return true;
}
+ /**
+ * @return bool
+ */
+ public function hasUserListings() {
+ return false;
+ }
/*
* we donĀ“t know the users so all we can do it return an empty array here
diff --git a/lib/user.php b/lib/user.php
index 0ab224bb15f..16680be4aa0 100644
--- a/lib/user.php
+++ b/lib/user.php
@@ -555,7 +555,7 @@ class OC_User {
public static function userExistsForCreation($uid) {
foreach(self::$_usedBackends as $backend) {
- if(!$backend->implementsActions(OC_USER_BACKEND_CREATE_USER))
+ if(!$backend->hasUserListings())
continue;
$result=$backend->userExists($uid);
diff --git a/lib/user/backend.php b/lib/user/backend.php
index 56fa3195978..34de1e50698 100644
--- a/lib/user/backend.php
+++ b/lib/user/backend.php
@@ -134,18 +134,26 @@ abstract class OC_User_Backend implements OC_User_Interface {
return $uid;
}
- /**
- * @brief Get a list of all display names
- * @returns array with all displayNames (value) and the correspondig uids (key)
- *
- * Get a list of all display names and user ids.
- */
- public function getDisplayNames($search = '', $limit = null, $offset = null) {
+ /**
+ * @brief Get a list of all display names
+ * @returns array with all displayNames (value) and the corresponding uids (key)
+ *
+ * Get a list of all display names and user ids.
+ */
+ public function getDisplayNames($search = '', $limit = null, $offset = null) {
$displayNames = array();
$users = $this->getUsers($search, $limit, $offset);
foreach ( $users as $user) {
$displayNames[$user] = $user;
}
- return $displayNames;
+ return $displayNames;
+ }
+
+ /**
+ * @brief Check if a user list is available or not
+ * @return boolean if users can be listed or not
+ */
+ public function hasUserListings() {
+ return false;
}
}
diff --git a/lib/user/database.php b/lib/user/database.php
index 8dfd9534a96..1a6a22d7a16 100644
--- a/lib/user/database.php
+++ b/lib/user/database.php
@@ -111,30 +111,30 @@ class OC_User_Database extends OC_User_Backend {
}
}
- /**
- * @brief Set display name
- * @param $uid The username
- * @param $displayName The new display name
- * @returns true/false
- *
- * Change the display name of a user
+ /**
+ * @brief Set display name
+ * @param $uid The username
+ * @param $displayName The new display name
+ * @returns true/false
+ *
+ * Change the display name of a user
*/
public function setDisplayName( $uid, $displayName ) {
- if( $this->userExists($uid) ) {
- $query = OC_DB::prepare( 'UPDATE `*PREFIX*users` SET `displayname` = ? WHERE `uid` = ?' );
- $query->execute( array( $displayName, $uid ));
- return true;
- }else{
- return false;
- }
+ if( $this->userExists($uid) ) {
+ $query = OC_DB::prepare( 'UPDATE `*PREFIX*users` SET `displayname` = ? WHERE `uid` = ?' );
+ $query->execute( array( $displayName, $uid ));
+ return true;
+ }else{
+ return false;
+ }
}
- /**
- * @brief get display name of the user
- * @param $uid user ID of the user
- * @return display name
- */
- public function getDisplayName($uid) {
+ /**
+ * @brief get display name of the user
+ * @param $uid user ID of the user
+ * @return display name
+ */
+ public function getDisplayName($uid) {
if( $this->userExists($uid) ) {
$query = OC_DB::prepare( 'SELECT displayname FROM `*PREFIX*users` WHERE `uid` = ?' );
$result = $query->execute( array( $uid ))->fetchAll();
@@ -144,36 +144,36 @@ class OC_User_Database extends OC_User_Backend {
} else {
return $uid;
}
- }
+ }
}
- /**
- * @brief Get a list of all display names
- * @returns array with all displayNames (value) and the correspondig uids (key)
- *
- * Get a list of all display names and user ids.
- */
+ /**
+ * @brief Get a list of all display names
+ * @returns array with all displayNames (value) and the correspondig uids (key)
+ *
+ * Get a list of all display names and user ids.
+ */
public function getDisplayNames($search = '', $limit = null, $offset = null) {
$displayNames = array();
- $query = OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users` WHERE LOWER(`displayname`) LIKE LOWER(?)', $limit, $offset);
+ $query = OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users` WHERE LOWER(`displayname`) LIKE LOWER(?)', $limit, $offset);
$result = $query->execute(array($search.'%'));
- $users = array();
- while ($row = $result->fetchRow()) {
- $displayNames[$row['uid']] = $row['displayname'];
+ $users = array();
+ while ($row = $result->fetchRow()) {
+ $displayNames[$row['uid']] = $row['displayname'];
}
// let's see if we can also find some users who don't have a display name yet
- $query = OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users` WHERE LOWER(`uid`) LIKE LOWER(?)', $limit, $offset);
+ $query = OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users` WHERE LOWER(`uid`) LIKE LOWER(?)', $limit, $offset);
$result = $query->execute(array($search.'%'));
- while ($row = $result->fetchRow()) {
+ while ($row = $result->fetchRow()) {
$displayName = trim($row['displayname'], ' ');
- if ( empty($displayName) ) {
+ if ( empty($displayName) ) {
$displayNames[$row['uid']] = $row['uid'];
- }
+ }
}
-
- return $displayNames;
+
+ return $displayNames;
}
/**
@@ -256,4 +256,12 @@ class OC_User_Database extends OC_User_Backend {
return false;
}
}
+
+ /**
+ * @return bool
+ */
+ public function hasUserListings() {
+ return true;
+ }
+
}
diff --git a/lib/user/dummy.php b/lib/user/dummy.php
index 4dbbc02b888..d63f60efbeb 100644
--- a/lib/user/dummy.php
+++ b/lib/user/dummy.php
@@ -112,4 +112,11 @@ class OC_User_Dummy extends OC_User_Backend {
public function userExists($uid) {
return isset($this->users[$uid]);
}
+
+ /**
+ * @return bool
+ */
+ public function hasUserListings() {
+ return true;
+ }
}
diff --git a/lib/user/interface.php b/lib/user/interface.php
index b4667633b50..b1e19aea7fb 100644
--- a/lib/user/interface.php
+++ b/lib/user/interface.php
@@ -66,10 +66,15 @@ interface OC_User_Interface {
/**
* @brief Get a list of all display names
- * @returns array with all displayNames (value) and the correspondig uids (key)
+ * @returns array with all displayNames (value) and the corresponding uids (key)
*
* Get a list of all display names and user ids.
*/
public function getDisplayNames($search = '', $limit = null, $offset = null);
+ /**
+ * @brief Check if a user list is available or not
+ * @return boolean if users can be listed or not
+ */
+ public function hasUserListings();
} \ No newline at end of file