Merge pull request #12956 from owncloud/jenkins-user-backend-names
[jenkins only] introduce names for user backends - IUserBackend
This commit is contained in:
commit
2d64797320
11 changed files with 105 additions and 11 deletions
|
@ -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';
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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';
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
lib/public/iuserbackend.php
Normal file
27
lib/public/iuserbackend.php
Normal 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();
|
||||
|
||||
}
|
|
@ -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);
|
||||
|
|
|
@ -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…
Reference in a new issue