Implement default functions in OC_Group backend
Simplifies calling these functions, and makes code simpler functions: inGroup getUserGroups getGroups usersInGroup
This commit is contained in:
parent
ac2e0cd6e4
commit
e77ba0280a
|
@ -84,7 +84,7 @@ class OC_Group {
|
|||
OC_Hook::emit( "OC_Group", "pre_createGroup", array( "run" => &$run, "gid" => $gid ));
|
||||
|
||||
if($run){
|
||||
//create the user in the first backend that supports creating users
|
||||
//create the group in the first backend that supports creating groups
|
||||
foreach(self::$_usedBackends as $backend){
|
||||
if(!$backend->implementsActions(OC_GROUP_BACKEND_CREATE_GROUP))
|
||||
continue;
|
||||
|
@ -141,9 +141,6 @@ class OC_Group {
|
|||
*/
|
||||
public static function inGroup( $uid, $gid ){
|
||||
foreach(self::$_usedBackends as $backend){
|
||||
if(!$backend->implementsActions(OC_GROUP_BACKEND_IN_GROUP))
|
||||
continue;
|
||||
|
||||
if($backend->inGroup($uid,$gid)){
|
||||
return true;
|
||||
}
|
||||
|
@ -224,9 +221,6 @@ class OC_Group {
|
|||
public static function getUserGroups( $uid ){
|
||||
$groups=array();
|
||||
foreach(self::$_usedBackends as $backend){
|
||||
if(!$backend->implementsActions(OC_GROUP_BACKEND_GET_USER_GROUPS))
|
||||
continue;
|
||||
|
||||
$groups=array_merge($backend->getUserGroups($uid),$groups);
|
||||
}
|
||||
return $groups;
|
||||
|
@ -241,9 +235,6 @@ class OC_Group {
|
|||
public static function getGroups(){
|
||||
$groups=array();
|
||||
foreach(self::$_usedBackends as $backend){
|
||||
if(!$backend->implementsActions(OC_GROUP_BACKEND_GET_GROUPS))
|
||||
continue;
|
||||
|
||||
$groups=array_merge($backend->getGroups(),$groups);
|
||||
}
|
||||
return $groups;
|
||||
|
@ -270,9 +261,6 @@ class OC_Group {
|
|||
public static function usersInGroup($gid){
|
||||
$users=array();
|
||||
foreach(self::$_usedBackends as $backend){
|
||||
if(!$backend->implementsActions(OC_GROUP_BACKEND_GET_USERS))
|
||||
continue;
|
||||
|
||||
$users=array_merge($backend->usersInGroup($gid),$users);
|
||||
}
|
||||
return $users;
|
||||
|
|
|
@ -31,12 +31,8 @@ define('OC_GROUP_BACKEND_NOT_IMPLEMENTED', -501);
|
|||
*/
|
||||
define('OC_GROUP_BACKEND_CREATE_GROUP', 0x00000001);
|
||||
define('OC_GROUP_BACKEND_DELETE_GROUP', 0x00000010);
|
||||
define('OC_GROUP_BACKEND_IN_GROUP', 0x00000100);
|
||||
define('OC_GROUP_BACKEND_ADD_TO_GROUP', 0x00001000);
|
||||
define('OC_GROUP_BACKEND_REMOVE_FROM_GOUP', 0x00010000);
|
||||
define('OC_GROUP_BACKEND_GET_USER_GROUPS', 0x00100000);
|
||||
define('OC_GROUP_BACKEND_GET_USERS', 0x01000000);
|
||||
define('OC_GROUP_BACKEND_GET_GROUPS', 0x10000000);
|
||||
define('OC_GROUP_BACKEND_ADD_TO_GROUP', 0x00000100);
|
||||
define('OC_GROUP_BACKEND_REMOVE_FROM_GOUP', 0x00001000);
|
||||
|
||||
/**
|
||||
* Abstract base class for user management
|
||||
|
@ -45,12 +41,8 @@ abstract class OC_Group_Backend {
|
|||
protected $possibleActions = array(
|
||||
OC_GROUP_BACKEND_CREATE_GROUP => 'createGroup',
|
||||
OC_GROUP_BACKEND_DELETE_GROUP => 'deleteGroup',
|
||||
OC_GROUP_BACKEND_IN_GROUP => 'inGroup',
|
||||
OC_GROUP_BACKEND_ADD_TO_GROUP => 'addToGroup',
|
||||
OC_GROUP_BACKEND_REMOVE_FROM_GOUP => 'removeFromGroup',
|
||||
OC_GROUP_BACKEND_GET_USER_GROUPS => 'getUserGroups',
|
||||
OC_GROUP_BACKEND_GET_USERS => 'usersInGroup',
|
||||
OC_GROUP_BACKEND_GET_GROUPS => 'getGroups'
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -83,15 +75,55 @@ abstract class OC_Group_Backend {
|
|||
return (bool)($this->getSupportedActions() & $actions);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief is user in group?
|
||||
* @param $uid uid of the user
|
||||
* @param $gid gid of the group
|
||||
* @returns true/false
|
||||
*
|
||||
* Checks whether the user is member of a group or not.
|
||||
*/
|
||||
public static function inGroup($uid, $gid){
|
||||
return in_array($gid, $this->getUserGroups($uid));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get all groups a user belongs to
|
||||
* @param $uid Name of the user
|
||||
* @returns array with group names
|
||||
*
|
||||
* This function fetches all groups a user belongs to. It does not check
|
||||
* if the user exists at all.
|
||||
*/
|
||||
public static function getUserGroups($uid){
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief get a list of all groups
|
||||
* @returns array with group names
|
||||
*
|
||||
* Returns a list with all groups
|
||||
*/
|
||||
public static function getGroups(){
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
* check if a group exists
|
||||
* @param string $gid
|
||||
* @return bool
|
||||
*/
|
||||
public function groupExists($gid){
|
||||
if(!$this->implementsActions(OC_GROUP_BACKEND_GET_GROUPS)){
|
||||
return false;
|
||||
}
|
||||
return in_array($gid, $this->getGroups());
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief get a list of all users in a group
|
||||
* @returns array with user ids
|
||||
*/
|
||||
public static function usersInGroup($gid){
|
||||
return array();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -93,6 +93,13 @@ abstract class OC_Group_Example {
|
|||
*/
|
||||
public static function getGroups(){}
|
||||
|
||||
/**
|
||||
* check if a group exists
|
||||
* @param string $gid
|
||||
* @return bool
|
||||
*/
|
||||
public function groupExists($gid){}
|
||||
|
||||
/**
|
||||
* @brief get a list of all users in a group
|
||||
* @returns array with user ids
|
||||
|
|
Loading…
Reference in New Issue