accounts->id2name($id);
// echo" el grupo es".$name." ".$id."
";
return new Group($id, $name, '');
}
function getAllGroups()
{
$phpgw_groups = $GLOBALS['phpgw']->accounts->get_list('groups');
$groups = array();
for ($i = 0; $i < count($phpgw_groups); $i++)
$groups[$i] = new Group($phpgw_groups[$i]["account_id"], $phpgw_groups[$i]["account_lid"], '');
return $groups;
}
function addGroup($name, $comment)
{
GLOBAl $db;
$queryStr = "INSERT INTO phpgw_mydms_Groups (name, comment) VALUES ('".$name."', '" . $comment . "')";
if (!$db->getResult($queryStr))
return false;
return getGroup($db->getInsertID('phpgw_mydms_Groups','id'));
}
/**********************************************************************\
| Group-Klasse |
\**********************************************************************/
class Group
{
var $_id;
var $_name;
function Group($id, $name, $comment)
{
$this->_id = $id;
$this->_name = $name;
$this->_comment = $comment;
}
function getID() { return $this->_id; }
function getName() { return $this->_name; }
function setName($newName)
{
GLOBAL $db;
$queryStr = "UPDATE phpgw_mydms_Groups SET name = '" . $newName . "' WHERE id = " . $this->_id;
if (!$db->getResult($queryStr))
return false;
$this->_name = $newName;
return true;
}
function getComment() { return $this->_comment; }
function setComment($newComment)
{
GLOBAL $db;
$queryStr = "UPDATE phpgw_mydms_Groups SET comment = '" . $newComment . "' WHERE id = " . $this->_id;
if (!$db->getResult($queryStr))
return false;
$this->_comment = $newComment;
return true;
}
function getUsers()
{
$members = $GLOBALS['phpgw']->accounts->member($this->_id);
$phpgw_group_member = array();
if (is_array($members))
{
foreach($members as $member)
{
if(!in_array($member['account_id'],$phpgw_group_member))
{
$phpgw_group_member[] = $member['account_id'];
}
}
}
$this->_users = array();
foreach($phpgw_group_member as $phpgw_member)
{
$user = getUser($phpgw_member);
array_push($this->_users, $user);
}
return $this->_users;
}
function addUser($user)
{
GLOBAL $db;
$queryStr = "INSERT INTO phpgw_mydms_GroupMembers (groupID, userID) VALUES (".$this->_id.", ".$user->getID().")";
$res = $db->getResult($queryStr);
if ($res)
return false;
unset($this->_users);
return true;
}
function removeUser($user)
{
GLOBAL $db;
$queryStr = "DELETE FROM phpgw_mydms_GroupMembers WHERE groupID = ".$this->_id." AND userID = ".$user->getID();
$res = $db->getResult($queryStr);
if ($res)
return false;
unset($this->_users);
return true;
}
function isMember($user)
{
//Wenn die User bereits abgefragt wurden, geht's so schneller:
//echo "usuariooooo".$user->getID()."
";
if (isset($this->_users))
{
foreach ($this->_users as $usr)
if ($usr->getID() == $user->getID())
return true;
return false;
}
$members = $GLOBALS['phpgw']->accounts->member((int)$this->_id);
$phpgw_group_member = array();
if (is_array($members))
{
/* foreach($members as $member)
{
if(!in_array($member['account_id'],$phpgw_group_member))
{
$phpgw_group_member[] = $member['account_id'];
//echo "grupomiembro".$member['account_id']." ".$this->_id."
";
}//else{
//echo "
arrreglo
".$member['account_id']." ".$phpgw_group_member->id."
";
//}
}*/
}
if(!in_array($user->getID(),$phpgw_group_member))
{
return false;
}
else
{
return true;
}
}
/**
* Entfernt die Gruppe aus dem System.
* Dies ist jedoch nicht mit einem L�schen des entsprechenden Eintrags aus phpgw_mydms_Groups geschehen - vielmehr
* muss daf�r gesorgt werden, dass die Gruppe nirgendwo mehr auftaucht. D.h. auch die Tabellen phpgw_mydms_ACLs,
* phpgw_mydms_Notify und phpgw_mydms_GroupMembers m�ssen ber�cksichtigt werden.
*/
function remove()
{
GLOBAl $db;
$queryStr = "DELETE FROM phpgw_mydms_Groups WHERE id = " . $this->_id;
if (!$db->getResult($queryStr))
return false;
$queryStr = "DELETE FROM phpgw_mydms_GroupMembers WHERE groupID = " . $this->_id;
if (!$db->getResult($queryStr))
return false;
$queryStr = "DELETE FROM phpgw_mydms_ACLs WHERE groupID = " . $this->_id;
if (!$db->getResult($queryStr))
return false;
$queryStr = "DELETE FROM phpgw_mydms_Notify WHERE groupID = " . $this->_id;
if (!$db->getResult($queryStr))
return false;
return true;
}
}
?>