Browse Source

introduce names for user backends - IUserBackend

* LDAP with multiple servers also proved backendName
tags/v8.0.0alpha1
Morris Jobke 9 years ago
parent
commit
6da33e1ea7

+ 10
- 1
apps/user_ldap/user_ldap.php View File

@@ -27,7 +27,7 @@ namespace OCA\user_ldap;

use OCA\user_ldap\lib\BackendUtility;

class USER_LDAP extends BackendUtility implements \OCP\UserInterface {
class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserInterface {
/**
* checks whether the user is allowed to change his avatar in ownCloud
* @param string $uid the ownCloud user name
@@ -299,4 +299,13 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface {
$this->access->connection->writeToCache($cacheKey, $entries);
return $entries;
}

/**
* Backend name to be shown in user management
* @return string the name of the backend to be shown
*/
public function getBackendName(){
return 'LDAP';
}

}

+ 9
- 1
apps/user_ldap/user_proxy.php View File

@@ -25,7 +25,7 @@ namespace OCA\user_ldap;

use OCA\user_ldap\lib\ILDAPWrapper;

class User_Proxy extends lib\Proxy implements \OCP\UserInterface {
class User_Proxy extends lib\Proxy implements \OCP\IUserBackend, \OCP\UserInterface {
private $backends = array();
private $refBackend = null;

@@ -117,6 +117,14 @@ class User_Proxy extends lib\Proxy implements \OCP\UserInterface {
return $this->refBackend->implementsActions($actions);
}

/**
* Backend name to be shown in user management
* @return string the name of the backend to be shown
*/
public function getBackendName() {
return $this->refBackend->getBackendName();
}

/**
* Get a list of all users
* @return string[] with all uids

+ 9
- 1
apps/user_webdavauth/user_webdavauth.php View File

@@ -21,7 +21,7 @@
*
*/

class OC_USER_WEBDAVAUTH extends OC_User_Backend {
class OC_USER_WEBDAVAUTH extends OC_User_Backend implements \OCP\IUserBackend {
protected $webdavauth_url;

public function __construct() {
@@ -86,4 +86,12 @@ class OC_USER_WEBDAVAUTH extends OC_User_Backend {

return $returnArray;
}

/**
* Backend name to be shown in user management
* @return string the name of the backend to be shown
*/
public function getBackendName(){
return 'WebDAV';
}
}

+ 9
- 1
lib/private/user/database.php View File

@@ -36,7 +36,7 @@
/**
* Class for user management in a SQL Database (e.g. MySQL, SQLite)
*/
class OC_User_Database extends OC_User_Backend {
class OC_User_Database extends OC_User_Backend implements \OCP\IUserBackend {
private $cache = array();

/**
@@ -260,4 +260,12 @@ class OC_User_Database extends OC_User_Backend {
return $result->fetchOne();
}

/**
* Backend name to be shown in user management
* @return string the name of the backend to be shown
*/
public function getBackendName(){
return 'Database';
}

}

+ 9
- 1
lib/private/user/dummy.php View File

@@ -24,7 +24,7 @@
/**
* dummy user backend, does not keep state, only for testing use
*/
class OC_User_Dummy extends OC_User_Backend {
class OC_User_Dummy extends OC_User_Backend implements \OCP\IUserBackend {
private $users = array();
private $displayNames = array();

@@ -156,4 +156,12 @@ class OC_User_Dummy extends OC_User_Backend {
public function getDisplayName($uid) {
return isset($this->displayNames[$uid])? $this->displayNames[$uid]: $uid;
}

/**
* Backend name to be shown in user management
* @return string the name of the backend to be shown
*/
public function getBackendName(){
return 'Dummy';
}
}

+ 9
- 1
lib/private/user/http.php View File

@@ -24,7 +24,7 @@
/**
* user backend using http auth requests
*/
class OC_User_HTTP extends OC_User_Backend {
class OC_User_HTTP extends OC_User_Backend implements \OCP\IUserBackend {
/**
* split http://user@host/path into a user and url part
* @param string $url
@@ -109,4 +109,12 @@ class OC_User_HTTP extends OC_User_Backend {
return false;
}
}

/**
* Backend name to be shown in user management
* @return string the name of the backend to be shown
*/
public function getBackendName(){
return 'HTTP';
}
}

+ 8
- 3
lib/private/user/manager.php View File

@@ -279,10 +279,15 @@ class Manager extends PublicEmitter implements IUserManager {
if ($backend->implementsActions(\OC_User_Backend::COUNT_USERS)) {
$backendusers = $backend->countUsers();
if($backendusers !== false) {
if(isset($userCountStatistics[get_class($backend)])) {
$userCountStatistics[get_class($backend)] += $backendusers;
if($backend instanceof \OCP\IUserBackend) {
$name = $backend->getBackendName();
} else {
$userCountStatistics[get_class($backend)] = $backendusers;
$name = get_class($backend);
}
if(isset($userCountStatistics[$name])) {
$userCountStatistics[$name] += $backendusers;
} else {
$userCountStatistics[$name] = $backendusers;
}
}
}

+ 3
- 0
lib/private/user/user.php View File

@@ -225,6 +225,9 @@ class User implements IUser {
* @return string
*/
public function getBackendClassName() {
if($this->backend instanceof \OCP\IUserBackend) {
return $this->backend->getBackendName();
}
return get_class($this->backend);
}


+ 27
- 0
lib/public/iuserbackend.php View File

@@ -0,0 +1,27 @@
<?php
/**
* Copyright (c) 2014 Morris Jobke <hey@morrisjobke.de>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/

/**
* Public interface of ownCloud for apps to use.
* User Interface version 2
*
*/

// use OCP namespace for all classes that are considered public.
// This means that they should be used by apps instead of the internal ownCloud classes
namespace OCP;

interface IUserBackend {

/**
* Backend name to be shown in user management
* @return string the name of the backend to be shown
*/
public function getBackendName();

}

+ 10
- 0
tests/lib/user/manager.php View File

@@ -380,6 +380,10 @@ class Manager extends \Test\TestCase {
->with(\OC_USER_BACKEND_COUNT_USERS)
->will($this->returnValue(true));

$backend->expects($this->once())
->method('getBackendName')
->will($this->returnValue('Mock_OC_User_Dummy'));

$manager = new \OC\User\Manager();
$manager->registerBackend($backend);

@@ -404,6 +408,9 @@ class Manager extends \Test\TestCase {
->method('implementsActions')
->with(\OC_USER_BACKEND_COUNT_USERS)
->will($this->returnValue(true));
$backend1->expects($this->once())
->method('getBackendName')
->will($this->returnValue('Mock_OC_User_Dummy'));

$backend2 = $this->getMock('\OC_User_Dummy');
$backend2->expects($this->once())
@@ -414,6 +421,9 @@ class Manager extends \Test\TestCase {
->method('implementsActions')
->with(\OC_USER_BACKEND_COUNT_USERS)
->will($this->returnValue(true));
$backend2->expects($this->once())
->method('getBackendName')
->will($this->returnValue('Mock_OC_User_Dummy'));

$manager = new \OC\User\Manager();
$manager->registerBackend($backend1);

+ 2
- 2
tests/lib/user/user.php View File

@@ -217,9 +217,9 @@ class User extends \Test\TestCase {

public function testGetBackendClassName() {
$user = new \OC\User\User('foo', new \OC_User_Dummy());
$this->assertEquals('OC_User_Dummy', $user->getBackendClassName());
$this->assertEquals('Dummy', $user->getBackendClassName());
$user = new \OC\User\User('foo', new \OC_User_Database());
$this->assertEquals('OC_User_Database', $user->getBackendClassName());
$this->assertEquals('Database', $user->getBackendClassName());
}

public function testGetHomeNotSupported() {

Loading…
Cancel
Save