introduce new virtual method hasUserListings() to determine if a user backend can list it's users.
This commit is contained in:
parent
037fcde133
commit
5731a1b01c
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
Loading…
Reference in New Issue