Introduce user count action to user management
This commit is contained in:
parent
0e843b9d7d
commit
1e1ced7772
|
@ -31,13 +31,14 @@ define('OC_USER_BACKEND_NOT_IMPLEMENTED', -501);
|
||||||
/**
|
/**
|
||||||
* actions that user backends can define
|
* actions that user backends can define
|
||||||
*/
|
*/
|
||||||
define('OC_USER_BACKEND_CREATE_USER', 0x0000001);
|
define('OC_USER_BACKEND_CREATE_USER', 0x00000001);
|
||||||
define('OC_USER_BACKEND_SET_PASSWORD', 0x0000010);
|
define('OC_USER_BACKEND_SET_PASSWORD', 0x00000010);
|
||||||
define('OC_USER_BACKEND_CHECK_PASSWORD', 0x0000100);
|
define('OC_USER_BACKEND_CHECK_PASSWORD', 0x00000100);
|
||||||
define('OC_USER_BACKEND_GET_HOME', 0x0001000);
|
define('OC_USER_BACKEND_GET_HOME', 0x00001000);
|
||||||
define('OC_USER_BACKEND_GET_DISPLAYNAME', 0x0010000);
|
define('OC_USER_BACKEND_GET_DISPLAYNAME', 0x00010000);
|
||||||
define('OC_USER_BACKEND_SET_DISPLAYNAME', 0x0100000);
|
define('OC_USER_BACKEND_SET_DISPLAYNAME', 0x00100000);
|
||||||
define('OC_USER_BACKEND_PROVIDE_AVATAR', 0x1000000);
|
define('OC_USER_BACKEND_PROVIDE_AVATAR', 0x01000000);
|
||||||
|
define('OC_USER_BACKEND_COUNT_USERS', 0x10000000);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Abstract base class for user management. Provides methods for querying backend
|
* Abstract base class for user management. Provides methods for querying backend
|
||||||
|
@ -55,6 +56,7 @@ abstract class OC_User_Backend implements OC_User_Interface {
|
||||||
OC_USER_BACKEND_GET_DISPLAYNAME => 'getDisplayName',
|
OC_USER_BACKEND_GET_DISPLAYNAME => 'getDisplayName',
|
||||||
OC_USER_BACKEND_SET_DISPLAYNAME => 'setDisplayName',
|
OC_USER_BACKEND_SET_DISPLAYNAME => 'setDisplayName',
|
||||||
OC_USER_BACKEND_PROVIDE_AVATAR => 'canChangeAvatar',
|
OC_USER_BACKEND_PROVIDE_AVATAR => 'canChangeAvatar',
|
||||||
|
OC_USER_BACKEND_COUNT_USERS => 'countUsers',
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -253,4 +253,19 @@ class OC_User_Database extends OC_User_Backend {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* counts the users in the database
|
||||||
|
*
|
||||||
|
* @return int | bool
|
||||||
|
*/
|
||||||
|
public function countUsers() {
|
||||||
|
$query = OC_DB::prepare('SELECT COUNT(*) FROM `*PREFIX*users`');
|
||||||
|
$result = $query->execute();
|
||||||
|
if (OC_DB::isError($result)) {
|
||||||
|
OC_Log::write('core', OC_DB::getErrorMessage($result), OC_Log::ERROR);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return $result->fetchOne();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -270,4 +270,22 @@ class Manager extends PublicEmitter {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns how many users per backend exist (if supported by backend)
|
||||||
|
*
|
||||||
|
* @return array with backend class as key and count number as value
|
||||||
|
*/
|
||||||
|
public function countUsers() {
|
||||||
|
$userCountStatistics = array();
|
||||||
|
foreach ($this->backends as $backend) {
|
||||||
|
if ($backend->implementsActions(\OC_USER_BACKEND_COUNT_USERS)) {
|
||||||
|
$backendusers = $backend->countUsers();
|
||||||
|
if($backendusers !== false) {
|
||||||
|
$userCountStatistics[get_class($backend)] = $backendusers;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $userCountStatistics;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue