add OC_Group::usersInGroup() to get a list of all users in a group

This commit is contained in:
Robin Appelman 2011-08-11 10:11:44 +02:00
parent 110f96df78
commit bfd72501a1
3 changed files with 32 additions and 4 deletions

View File

@ -243,4 +243,12 @@ class OC_Group {
public static function groupExists($gid){
return in_array( $gid, self::getGroups());
}
/**
* @brief get a list of all users in a group
* @returns array with user ids
*/
public static function usersInGroup($gid){
return self::$_backend->usersInGroup();
}
}

View File

@ -93,4 +93,10 @@ abstract class OC_Group_Backend {
* Returns a list with all groups
*/
public static function getGroups(){}
/**
* @brief get a list of all users in a group
* @returns array with user ids
*/
public static function usersInGroup($gid){}
}

View File

@ -53,7 +53,7 @@ class OC_Group_Database extends OC_Group_Backend {
*/
public static function createGroup( $gid ){
// Check for existence
$query = OC_DB::prepare( "SELECT * FROM `*PREFIX*groups` WHERE gid = ?" );
$query = OC_DB::prepare( "SELECT gid FROM `*PREFIX*groups` WHERE gid = ?" );
$result = $query->execute( array( $gid ));
if( $result->numRows() > 0 ){
@ -98,7 +98,7 @@ class OC_Group_Database extends OC_Group_Backend {
*/
public static function inGroup( $uid, $gid ){
// check
$query = OC_DB::prepare( "SELECT * FROM `*PREFIX*group_user` WHERE gid = ? AND uid = ?" );
$query = OC_DB::prepare( "SELECT uid FROM `*PREFIX*group_user` WHERE gid = ? AND uid = ?" );
$result = $query->execute( array( $gid, $uid ));
return $result->numRows() > 0 ? true : false;
@ -146,7 +146,7 @@ class OC_Group_Database extends OC_Group_Backend {
*/
public static function getUserGroups( $uid ){
// No magic!
$query = OC_DB::prepare( "SELECT * FROM `*PREFIX*group_user` WHERE uid = ?" );
$query = OC_DB::prepare( "SELECT gid FROM `*PREFIX*group_user` WHERE uid = ?" );
$result = $query->execute( array( $uid ));
$groups = array();
@ -164,7 +164,7 @@ class OC_Group_Database extends OC_Group_Backend {
* Returns a list with all groups
*/
public static function getGroups(){
$query = OC_DB::prepare( "SELECT * FROM `*PREFIX*groups`" );
$query = OC_DB::prepare( "SELECT gid FROM `*PREFIX*groups`" );
$result = $query->execute();
$groups = array();
@ -174,4 +174,18 @@ class OC_Group_Database extends OC_Group_Backend {
return $groups;
}
/**
* @brief get a list of all users in a group
* @returns array with user ids
*/
public static function usersInGroup($gid){
$query=OC_DB::prepare('SELECT uid FROM *PREFIX*group_user WHERE gid=?');
$users=array();
$result=$query->execute(array($gid));
while($row=$result->fetchRow()){
$users[]=$row['uid'];
}
return $users;
}
}