Skip to content

Commit

Permalink
introduce names for user backends - IUserBackend
Browse files Browse the repository at this point in the history
  • Loading branch information
MorrisJobke committed Dec 13, 2014
1 parent 04aaa72 commit 1d3b9bc
Show file tree
Hide file tree
Showing 9 changed files with 84 additions and 7 deletions.
11 changes: 10 additions & 1 deletion apps/user_ldap/user_ldap.php
Expand Up @@ -27,7 +27,7 @@

use OCA\user_ldap\lib\BackendUtility;

class USER_LDAP extends BackendUtility implements \OCP\UserInterface {
class USER_LDAP extends BackendUtility implements \OCP\IUserBackend {
/**
* checks whether the user is allowed to change his avatar in ownCloud
* @param string $uid the ownCloud user name
Expand Down Expand Up @@ -299,4 +299,13 @@ public function countUsers() {
$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';
}

}
10 changes: 9 additions & 1 deletion apps/user_webdavauth/user_webdavauth.php
Expand Up @@ -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() {
Expand Down Expand Up @@ -86,4 +86,12 @@ public function getUsers($search = '', $limit = 10, $offset = 0) {

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';
}
}
10 changes: 9 additions & 1 deletion lib/private/user/database.php
Expand Up @@ -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();

/**
Expand Down Expand Up @@ -260,4 +260,12 @@ public function countUsers() {
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';
}

}
10 changes: 9 additions & 1 deletion lib/private/user/dummy.php
Expand Up @@ -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();

Expand Down Expand Up @@ -156,4 +156,12 @@ public function setDisplayName($uid, $displayName) {
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';
}
}
10 changes: 9 additions & 1 deletion lib/private/user/http.php
Expand Up @@ -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
Expand Down Expand Up @@ -109,4 +109,12 @@ public function getHome($uid) {
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';
}
}
3 changes: 3 additions & 0 deletions lib/private/user/user.php
Expand Up @@ -225,6 +225,9 @@ public function getHome() {
* @return string
*/
public function getBackendClassName() {
if($this->backend instanceof \OCP\IUserBackend) {
return $this->backend->getBackendName();
}
return get_class($this->backend);
}

Expand Down
27 changes: 27 additions & 0 deletions lib/public/iuserbackend.php
@@ -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 extends UserInterface {

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

}
6 changes: 6 additions & 0 deletions lib/public/userinterface.php
Expand Up @@ -30,4 +30,10 @@
// This means that they should be used by apps instead of the internal ownCloud classes
namespace OCP;

/**
* Interface UserInterface
*
* @package OCP
* @deprecated Use \OCP\IUserBackend instead
*/
interface UserInterface extends \OC_User_Interface {}
4 changes: 2 additions & 2 deletions tests/lib/user/user.php
Expand Up @@ -217,9 +217,9 @@ public function testGetHome() {

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() {
Expand Down

0 comments on commit 1d3b9bc

Please sign in to comment.